home *** CD-ROM | disk | FTP | other *** search
- 10 '------------------------------------------------------------------
- 20 ' HK2LITE.BAS Copyrigit(C) T.Komura / 家計簿システム HK /
- 30 ' / Version 2 /
- 31 ' Version 4.0 1992.06.20-1992.06.28 / 入力・編集プログラム /
- 32 ' Version 1.0 1993.01.01 公開バージョン
- 33 ' Version 1.1a 1993.01.01 辞書入力追加
- 34 ' Version 1.1b 1993.01.01 外部ファイルによる辞書入力スイッチ
- 35 ' Version 1.2 1993.01.01 金額の電卓入力追加
- 36 ' Version 1.3 1993.12.26 項目に小分類追加 残高計算機能追加
- 37 ' Version 1.4 1994.06.12 小分類廃止
- 38 ' Version 1.4d 1994.07.08 月間累計額の演算月を表示日の月に変更
- 39 ' Version 1.4e 1994.07.12 定額項目編集機能追加
- 40 ' V2.0 L10a 1995.05.14 Version 2.0 HK2とする
- 41 ' V2.0 L10e 1995.07.03 家計簿ファイル作成、累計演算に処理状況表示追加
- 42 ' V2.0 Lite 1995.07.09 [記入]部を独立させ、Liteとする。
- 100 '------------------------------------------------------------------
- 140 CLEAR ,,,,,300*1024
- 150 DIM CFI$(15)
- 170 GOSUB *CONFIGファイルチェック
- 190 '
- 200 *初期設定:'--------------------------------------------------------
- 210 CMD$="CD "+PRGDRV$:SHELL CMD$
- 220 CONSOLE 0,24,0:MOUSE 0
- 221 MOUSE 0
- 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
- 240 LOAD@ FMBDRV$+"\FMP.FMB"
- 250 PLAY "@30T150V6":DATX$=DATE$
- 255 'ウインドウ関係座標配列
- 256 G=8:B=50
- 260 DIM B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B),BST(G,B)
- 265 DIM W_X1(G),W_X2(G),W_Y1(G),W_Y2(G)
- 266 DIM W_XA(G),W_XB(G),W_YA(G),W_YB(G)
- 267 DIM MD_SB#(10465),MD_SW#(10465):'max : HELP window
- 268 'デ-タ配列
- 270 DIM DYN$(16),DRM$(16),DYN#(16),EVDT$(12,32)
- 274 DIM DYNX#(15) :'累計計算用一時記憶
- 275 DIM DYT$(15),DYM$(15),DYA$(15),DYR$(15) :'累計データ
- 276 DIM DYT#(15),DYM#(15),DYA#(15),DYR#(15) :'累計データ
- 280 DIM WRD$(15,128),WLN(15,128),WRDM(128) :'辞書データ
- 290 DIM COX$(10,5) :'定額データ
- 295 DIM DOC$(2000) :'HELPデータ
- 300 INTERVAL 1 :'プログラム先頭
- 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭
- 320 GOSUB *ボタン座標読み取り
- 325 GOSUB *MCREAD:GOSUB *DCLOCKREAD
- 330 'CLS:COLOR 7:PRINT int((int(((155-14+1)+7)/8)*(415-131+1)*4+8-1)/8)
- 360 DIM LMB#(900),ABOUTD#(2071),HLPL#(397),HLPC#(8449)
- 370 ON ERROR GOTO *ERROR
- 380 '
- 410 CBMAX=24:'コントロールボタン個数
- 420 BSAVE =10:'保存ボタン番号
- 422 BLOAD =9 :'読込ボタン番号
- 424 HKIN =16:'記入ボタン番号
- 426 HKINEND=24:'終了ボタン番号
- 440 DOCF$="\HK2Lite.HLP"
- 500 '------------------------------------------------------------------
- 510 休日1$="(祝日)" ' 休日を検出する行事ファイル内のキーワード 1
- 520 休日2$="(休日)" '
- 530 代休1 =1 ' 休日が日曜日と重なった場合月曜日を代休とする時"1"
- 540 代休2 =0 ' 会社等の休日
- 550 '
- 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 1005 GOSUB *SEFFECT1:MOUSE 1,320,64,1:MCN=2:GOSUB *MCDSET
- 1010 GOSUB *HKID :'先頭インデックスファイルチェック
- 1012 GOSUB *HKISSF:'起算ファイル検出
- 1030 GOSUB *EVGET:'行事データファイル読み込み
- 1035 GOSUB *本日の日付
- 1040 GOSUB *検索ジャンプチェック
- 1041 GOSUB *日付表示
- 1045 GOSUB *起算日表示
- 1050 IF DICIF=1 THEN GOSUB *DICREAD
- 1060 GOSUB *辞書入力スイッチ
- 1065 GOSUB *電卓入力スイッチ
- 1070 MCN=1:GOSUB *MCDSET
- 1080 GOSUB *指定日データ表示
- 1090 MESN=7:GOSUB *SNDMSG
- 1100 *メイン選択
- 1110 IF MES2OFF=0 THEN MESN=2:GOSUB *MESDSP
- 1120 MCN=1:GOSUB *MCDSET
- 1130 G=1:SWPASS=1:GOSUB *MCSELECT'ボタン選択
- 1135 IF SWNO<0 THEN 1130
- 1140 IF SWNO<>0 THEN 1145
- 1141 GOSUB *カレンダー検索:IF CLDSW=1 THEN GOTO *CLDSELECT
- 1142 GOSUB *項目検索 :IF ITMSW=1 THEN GOTO *ITMSELECT
- 1143 GOSUB *MCMIS:GOTO 1130
- 1145 IF SWNO>=CBMAX+1 THEN *SSEL
- 1150 ' yr- yr+ mn- mn+ dy- dy+ wk- wk+ load save calc dic
- 1151 ' totl cnst HK2 IN SRC ANL CLD CFG DATE、時計 help exit
- 1153 ON SWNO GOTO *S02,*S01,*S04,*S03,*S06,*S05,*S08,*S07,*S09,*S10,*S11,*S12, *S13,*S14,*S15,*S99,*S99,*S99,*S99,*S99,*S21,*S24,*S22,*S23
- 1200 '
- 3000 *CLDSELECT:' カレンダー指定-------------------------------------
- 3010 DY=SELDAY: BSNDOFF=1
- 3020 YDEF=0 :MDEF= 0:DDEF= 0: GOTO *YMDRNEW
- 3400 *S01:' 1年先 ---------------------------------------------------
- 3405 YDEF=+1:MDEF= 0:DDEF= 0: GOTO *YMDRNEW
- 3410 *S02:' 1年前 ---------------------------------------------------
- 3415 YDEF=-1:MDEF= 0:DDEF= 0: GOTO *YMDRNEW
- 3420 *S03:' 1月先 ---------------------------------------------------
- 3425 YDEF= 0:MDEF=+1:DDEF= 0: GOTO *YMDRNEW
- 3430 *S04:' 1月前 ---------------------------------------------------
- 3435 YDEF= 0:MDEF=-1:DDEF= 0: GOTO *YMDRNEW
- 3440 *S05:' 1日先 ---------------------------------------------------
- 3445 YDEF= 0:MDEF= 0:DDEF=+1: GOTO *YMDRNEW
- 3450 *S06:' 1日前 ---------------------------------------------------
- 3455 YDEF= 0:MDEF= 0:DDEF=-1: GOTO *YMDRNEW
- 3460 '
- 3500 *S07:' 1週間先 -------------------------------------------------
- 3505 YDEF= 0:MDEF= 0:DDEF=+1: WDEF=1:GOTO *YMDRNEW
- 3510 *S08:' 1週間前 -------------------------------------------------
- 3515 YDEF= 0:MDEF= 0:DDEF=-1: WDEF=1:GOTO *YMDRNEW
- 3520 *S21:' 本日 ----------------------------------------------------
- 3525 YR=TY:MN=TM:DY=TD
- 3530 YDEF= 0:MDEF= 0:DDEF= 0:GOTO *YMDRNEW
- 3560 '
- 3570 *YMDRNEW
- 3575 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 3580 IF IPF=0 THEN 3610
- 3585 MESN=4:GOSUB *MESDSP
- 3590 CMES$="家計簿データ保存実行":GOSUB *確認
- 3600 IF CAUNO=2 THEN 3610
- 3605 GOSUB *家計簿データ保存
- 3610 GOSUB *年月日変更
- 3612 IF WDEF=0 THEN 3630 ELSE WDEF=0:DDEFX=DDEF
- 3614 FOR WKCII=2 TO 7:YDEF=0:MDEF=0:DDEF=DDEFX
- 3616 GOSUB *年月日変更
- 3618 NEXT WKCII
- 3630 GOSUB *日付表示
- 3650 MESN=6:GOSUB *MESDSP
- 3660 GOSUB *指定日データ表示
- 3670 IPF=0
- 3680 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 3690 GOTO *メイン選択
- 3695 '
- 3700 *SSEL:'------------------------------------------------------------
- 3720 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 3730 IPNO=B-(CBMAX+1):SWNOX=SWNO
- 3740 IF IPNO=0 THEN GOSUB *出来事入力 :GOTO 3770
- 3750 MESN=11:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 3755 GOSUB *金額入力
- 3760 MESN=12:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 3765 GOSUB *内容入力
- 3770 IPF=1:WAIT SWAIT
- 3780 G=1:B=SWNOX:BST(G,B)=0:GOSUB *BTN_ONOFF
- 3785 MES2OFF=0
- 3790 GOTO *メイン選択
- 3795 '
- 3800 *ITMSELECT:'-------------------------------------------------------
- 3810 IPNO=ITMN:SWNO=IPNO+CBMAX+1:SWNOX=SWNO
- 3820 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 3830 IF IPNO=0 THEN GOSUB *出来事入力:GOTO 3870
- 3840 IF ITMK=2 THEN 3855
- 3845 MESN=11:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 3850 GOSUB *金額入力 :GOTO 3870
- 3855 MESN=12:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 3860 GOSUB *内容入力
- 3870 IPF=1:WAIT SWAIT
- 3880 G=1:B=SWNOX:BST(G,B)=0:GOSUB *BTN_ONOFF
- 3885 SWNO=SWNOX:MES2OFF=0
- 3890 GOTO *メイン選択
- 3895 '
- 3995 '
- 4000 *S09:'取消 --------------------------------------------------------
- 4010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 4020 MESN=6:GOSUB *MESDSP
- 4030 GOSUB *指定日データ表示
- 4035 IPF=0
- 4040 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 4050 GOTO *メイン選択
- 4060 '
- 4500 *S10:'保存 --------------------------------------------------------
- 4505 MCN=2:GOSUB *MCDSET
- 4510 GOSUB *家計簿データ保存
- 4530 GOSUB *指定日データ表示
- 4580 GOTO *メイン選択
- 4590 '
- 5000 *S12:'辞書使用スイッチ --------------------------------------------'
- 5010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 5020 IF DICIF=0 THEN MESN=14 ELSE MESN=15
- 5030 GOSUB *MESDSP
- 5035 DICIF=1-DICIF
- 5036 IF DICIF=1 AND DICEXF=0 THEN GOSUB *DICREAD
- 5040 GOSUB *辞書入力スイッチ:WAIT SWAIT\1+1'
- 5050 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 5060 GOTO *メイン選択
- 5070 '
- 5100 *S11:'電卓使用スイッチ --------------------------------------------'
- 5110 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 5120 IF CALCF=0 THEN MESN=18 ELSE MESN=19
- 5130 GOSUB *MESDSP
- 5135 CALCF=1-CALCF
- 5140 GOSUB *電卓入力スイッチ:WAIT SWAIT\1+1'
- 5150 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 5160 GOTO *メイン選択
- 5170 '
- 5200 *S13:'累計表示-----------------------------------------------------'
- 5210 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 5220 GOSUB *累計表表示
- 5250 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 5260 GOTO *メイン選択
- 5270 '
- 5300 *S14:'定額処理-----------------------------------------------------'
- 5310 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 5320 IF IPF=0 THEN 5420
- 5330 MESN=4:GOSUB *MESDSP
- 5340 CMES$="家計簿データ保存実行":GOSUB *確認
- 5350 IF CAUNO=2 THEN 5420
- 5360 GOSUB *家計簿データ保存
- 5420 GOSUB *定額支出編集
- 5450 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 5460 GOTO *メイン選択
- 5490 '
- 6000 *S15:'About HK2---------------------------------------------------'
- 6010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6020 MESN=1:GOSUB *MESDSP
- 6030 GOSUB *ABOUT表示
- 6060 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6070 GOTO *メイン選択
- 6080 '
- 6100 *S22:'Help ---------------------------------------------------'
- 6110 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6120 MESN=20:GOSUB *MESDSP
- 6130 GOSUB *HKHELP
- 6160 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6170 GOTO *メイン選択
- 6180 '
- 6200 *S24:'Digital Clock ----------------------------------------------'
- 6210 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6220 MESN=1:GOSUB *MESDSP
- 6230 GOSUB *DGCLOCK
- 6260 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6270 GOTO *メイン選択
- 6280 '
- 8000 *S99:'プログラム呼び出し・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 8010 GOTO *メイン選択
- 8020 G=1:B=HKIN:BST(G,B)=0:GOSUB *BTN_ONOFF
- 8025 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 8030 IF IPF=0 THEN 8110
- 8035 MESN=4:GOSUB *MESDSP
- 8040 CMES$="家計簿データ保存実行":GOSUB *確認
- 8045 IF CAUNO=2 THEN 8110
- 8050 GOSUB *家計簿データ保存
- 8110 MESN=9:GOSUB *MESDSP':MESN=24:GOSUB *SNDMSG
- 8120 INTERVAL OFF:GOSUB *SEFFECT2
- 8130 ON SWNO-15 GOTO *S99,*S17,*S18,*S19,*S20
- 8150 *S16:STOP'
- 8160 *S17:RUN "HK2src.bas"
- 8170 *S18:RUN "HK2anl.bas"
- 8180 *S19:RUN "HK2cld.bas"
- 8190 *S20:RUN "HK2cfg.bas"
- 8940 '
- 9000 *S23:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 9020 G=1:B=HKINEND:BST(G,B)=1:GOSUB *BTN_ONOFF
- 9030 IF IPF=0 THEN 9110
- 9035 MESN=4:GOSUB *MESDSP
- 9040 CMES$="家計簿データ保存実行":GOSUB *確認
- 9045 IF CAUNO=2 THEN 9110
- 9050 GOSUB *家計簿データ保存
- 9060 '
- 9110 MESN=9:GOSUB *MESDSP:MESN=6:GOSUB *SNDMSG
- 9120 INTERVAL OFF:GOSUB *SEFFECT2
- 9150 SYSTEM 'RUN "HK2.bas"
- 9160 '
- 9900 '-------------------------------------------------------------------
- 9910 ' GENERAL SUB ROUTINE
- 9920 '-------------------------------------------------------------------
- 10000 *CHR1IN:'////////// 1文字入力
- 10010 A$=INKEY$:IF A$="" THEN 10010
- 10020 A=INSTR(C$,A$)
- 10030 IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
- 10040 RETURN
- 10050 '
- 10060 '
- 10070 *MESDSP:'////////// メッセージ表示
- 10080 RESTORE *MESDAT
- 10090 FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
- 10105 LINE(0,465)-(639,479),PSET,0,BF
- 10115 SYMBOL(0,465),MES$,.75!,.75!,CM
- 10120 'IF BM=1 THEN PLAY "L4O4A"
- 10130 RETURN
- 10140 '
- 10200 *MESDAT:'////////// メッセージデータ
- 10205 ' XM, YN, CM, CB, BM
- 10210 DATA 2, 23, 5, 0, 1 :'--- 01
- 10215 DATA "家計簿システム HK2 Lite"
- 10220 DATA 2, 23, 7, 0, 0 :'--- 02
- 10225 DATA "適当なボタンをマウスカーソルで押して(左クリック)ください。"
- 10230 DATA 2, 23, 6, 0, 0 :'--- 03
- 10235 DATA "ディスクにこの月の家計簿ファイルがありません。新しくファイルを作りますか?"
- 10240 DATA 2, 23, 6, 0, 1 :'--- 04
- 10245 DATA "家計簿データが保存されていません! 保存する--[OK] 保存しない--[NG]"
- 10250 DATA 2, 23, 4, 0, 1 :'--- 05
- 10255 DATA "★家計簿ファイル新規作成中 !!"
- 10260 DATA 2, 23, 4, 0, 1 :'--- 06
- 10265 DATA "★家計簿ファイル読み込み中 !!"
- 10270 DATA 2, 23, 6, 0, 0 :'--- 07
- 10275 DATA "家計簿ファイルが無いため、この月のデータは読み込みできません!"
- 10280 DATA 2, 23, 7, 0, 0 :'--- 08
- 10285 DATA "このデータを家計簿ファイルに書き込んでよろしいですか? [OK],[NG]"
- 10290 DATA 2, 23, 5, 0, 1 :'--- 09
- 10295 DATA "★★★ しばらくお待ちください。"
- 10300 DATA 2, 23, 5, 0, 0 :'--- 10
- 10305 DATA " 出来事を記入してください。"
- 10310 DATA 2, 23, 5, 0, 0 :'--- 11
- 10315 DATA " 金額を記入してください。"
- 10320 DATA 2, 23, 5, 0, 0 :'--- 12
- 10325 DATA " 内容を記入してください。"
- 10330 DATA 2, 23, 4, 0, 1 :'--- 13
- 10335 DATA "★ 家計簿データ保存中。"
- 10340 DATA 2, 23, 4, 0, 1 :'--- 14
- 10345 DATA "各項目入力時の辞書入力を[ON]にします。"
- 10350 DATA 2, 23, 4, 0, 1 :'--- 15
- 10355 DATA "各項目入力時の辞書入力を[OFF]にします。"
- 10360 DATA 2, 23, 4, 0, 1 :'--- 16
- 10365 DATA "★ 辞書データ読み込み中 しばらくお待ちください"
- 10370 DATA 2, 23, 7, 0, 1 :'--- 17
- 10375 DATA "辞書から語句を選んでください。 "
- 10380 DATA 2, 23, 4, 0, 1 :'--- 18
- 10385 DATA "各項目の金額入力時に電卓を[ON]にします。"
- 10390 DATA 2, 23, 4, 0, 1 :'--- 19
- 10395 DATA "各項目の金額入力時に電卓を[OFF]にします。"
- 10400 DATA 2, 23, 5, 0, 1 :'--- 20
- 10405 DATA "HKHELP★記入モードの説明を表示しています。 頁移動-[ヒ][フ] 行移動-[▲][▼] 終了-[■]"
- 10410 DATA 2, 23, 7, 0, 1 :'--- 21
- 10415 DATA "表は表示月の累計額及び今日現在の総累計額です。 [取消]-取消し"
- 10420 DATA 2, 23, 6, 0, 1 :'--- 22
- 10425 DATA "家計簿ファイルがありません。 表示年月日を強制変更します。"
- 10430 DATA 2, 23, 4, 0, 1 :'--- 23
- 10435 DATA "★累計・残高計算実行中。"
- 10440 DATA 2, 23, 7, 0, 1 :'--- 24
- 10445 DATA "[ネ]-内容設定 [▲/▼]-転記先変更 [allCopy/Copy]-転記 [終了]-終了"
- 10450 DATA 2, 23, 6, 0, 1 :'--- 25
- 10455 DATA " 内容を記入してください。"
- 10460 DATA 2, 23, 4, 0, 1 :'--- 26
- 10465 DATA "★定額支出項目を家計簿データファイルへ転記中。"
- 10470 DATA 2, 23, 6, 0, 1 :'--- 27
- 10475 DATA "定額支出項目を記入済みです。 転記をキャンセルします。"
- 10480 DATA 2, 23, 6, 0, 1 :'--- 28
- 10485 DATA "転記先が指定されていません。 転記をキャンセルします。"
- 10490 DATA 2, 23, 4, 0, 1 :'--- 29
- 10495 DATA ""
- 10590 '
- 10600 *SEFFECT1'////////////////////////////////////////////////////////
- 10605 SCREEN 1,1,2,1:PALETTE 9,[0,0,0]:LINE(0,0)-(639,479),PSET,1,BF
- 10610 GOSUB *表紙表示' SCREEN 1,0,2,1:GOSUB *表紙表示
- 10612 SCREEN 1,1,3,1:
- 10620 FOR II=0 TO 240 STEP 2:PALETTE 9,[II,II,II]
- 10621 ' LINE(320-II,240-II*3/4)-(320+II,240+II*3/4),PSET,0,B
- 10622 LINE(0,240-II)-(639,240+II),PSET,0,BF
- 10623 NEXT II
- 10630 INTERVAL ON' SCREEN 1,0,1,0:INTERVAL ON
- 10640 SCREEN 0
- 10645 RETURN
- 10650 '
- 10700 *SEFFECT2'////////////////////////////////////////////////////////
- 10712 SCREEN 1,1,3,1:
- 10720 FOR II=240 TO 0 STEP -1:PALETTE 9,[II,II,II]
- 10721 LINE(0,240+II)-(639,240-II),PSET,1,B
- 10723 NEXT II
- 10730 MESN=9:GOSUB *MESDSP
- 10740 RETURN
- 10990 '
- 11000 *SNDMSG:' SAVE "SNDMSG.SUB",A
- 11005 IF SNDMF=0 THEN RETURN
- 11010 '・・・・・・・・・・・・・・・・・ サウンドメッセージ実行サブルーチン 1989.02.04
- 11020 ' 入力=MESN (メッセージNo.)
- 11030 '
- 11070 IF MESN>36 THEN *RETURN_SNDMSG :'END
- 11080 RESTORE *MSGNAM
- 11090 FOR IMSG=1 TO MESN
- 11100 READ MSGD$
- 11110 NEXT IMSG
- 11120 MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
- 11130 LOAD@ MSGFN$,MSGD%
- 11140 PCMPLAY MSGD%:WAIT SWAIT\1+1
- 11150 *RETURN_SNDMSG :RETURN
- 11160 *MSGNAM :'////////// .SND File Name Data
- 11170 DATA "OHA1" :' 1 おはよう
- 11180 DATA "KONN" :' 2 こんにちわ
- 11190 DATA "KONBAN" :' 3 こんばんわ
- 11200 DATA "goyuku" :' 4 ごゆっくり
- 11210 DATA "GOKRO2" :' 5 ごくろうさま
- 11220 DATA "OTUKA" :' 6 お疲れさま
- 11230 DATA "DOUZO" :' 7 おまたせ
- 11240 DATA "ARIGA2" :' 8 ありがとう
- 11250 DATA "RUNRUN" :' 9 るんるん
- 11260 DATA "DAMEDE" :' 10 だめでしょう
- 11270 DATA "IIDE1" :' 11 いいですか
- 11280 DATA "NANISI" :' 12 なにしてるの
- 11290 DATA "DAMEDA" :' 13 だめだめ
- 11300 DATA "OWARI" :' 14 終わりました
- 11310 DATA "SIBA" :' 15 しばらくお待ち下さい
- 11320 DATA "YOROSI" :' 16 よろしいですか
- 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
- 11340 DATA "ERANDE" :' 18 選んでください
- 11350 DATA "KAKNIN" :' 19 確認して下さい
- 11360 DATA "NYURYO" :' 20 入力してください
- 11370 DATA "IRA" :' 21 いらっしゃいませ
- 11380 DATA "OYASUM" :' 22 おやすみ
- 11390 DATA "ARIGA3" :' 23 ありがとうございました
- 11400 DATA "TYOTO" :' 24 ちょっと待って
- 11410 DATA "DAMEYO" :' 25 駄目よ
- 11420 DATA "YAMETE" :' 26 やめて
- 11430 DATA "TIGAU" :' 27 ちがうよ
- 11440 DATA "PINPON" :' 28 ぴんぽーん
- 11450 DATA "BUU" :' 29 ぶー
- 11460 DATA "MOUII" :' 30 もういいよう
- 11470 DATA "DEKITA" :' 31 できたよー
- 11480 DATA "IIDE2" :' 32 いいですか(2)
- 11490 DATA "YOSI" :' 33 よしなさい
- 11500 DATA "OYOSI" :' 34 およしなさい
- 11510 DATA "YAMENA" :' 35 やめなさい
- 11520 DATA "GOMEN" :' 36 ごめん
- 11530 '
- 12000 '////////// 年月日入力 & 曜日表示
- 12010 '
- 12045 *週検索
- 12050 DATA "SUN",2,"MON",7,"TUE",7,"WED",7,"THU",7,"FRI",7,"SAT",5
- 12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
- 12080 RETURN
- 12090 '
- 12450 *WEEKN :'////////// 週NO.検索 'v1.3 bugfix 93.12.27
- 12460 U=0 :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN Output; WK DN
- 12470 IF YR/4-INT(YR/4)=0 THEN U=1
- 12480 DATA 0,31,28,31,30,31,30,31,31,30,31,30,31
- 12490 DATA 0,31,29,31,30,31,30,31,31,30,31,30,31
- 12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
- 12505 'IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
- 12510 MDN=0:FOR IWEKN=1 TO MN:READ DN:MDN=MDN+DN:NEXT IWEKN:'1日までの日数
- 12515 READ MNDN :'当月の日数
- 12516 IF DY>MNDN THEN DY=MNDN :'V1.3!
- 12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
- 12530 WK=(YDN#/7-INT(YDN#/7))*7
- 12540 RETURN
- 12550 '
- 12600 *年月日変更: 'v1.3 bugfix 93.12.27
- 12601 GOSUB *WEEKN
- 12602 DY=DY+DDEF
- 12604 IF DY>MNDN THEN DY=1 :MDEF=+1
- 12606 IF DY<1 THEN DY=31 :MDEF=-1
- 12610 MN=MN+MDEF
- 12620 IF MN>12 THEN MN=MN-12 :YDEF=+1
- 12630 IF MN<1 THEN MN=12+MN :YDEF=-1
- 12640 YR=YR+YDEF
- 12650 IF YR<0 THEN YR=10000+YR
- 12660 IF YR>9999 THEN YR=YR-10000
- 12665 GOSUB *WEEKN
- 12668 DY$=RIGHT$(STR$(100+DY),2)
- 12670 MN$=RIGHT$(STR$(100+MN),2)
- 12680 YR$=RIGHT$(STR$(10000+YR),4)
- 12690 RETURN
- 12695 '
- 12700 *本日の日付
- 12705 DEF FONT "システム 12ドット"
- 12710 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 12720 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 12730 TY$=RIGHT$(STR$(TY),4)
- 12740 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 12750 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 12760 YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
- 12770 TYMD$=TY$+"."+TM$+"."+TD$
- 12780 LINE(475,5)-(560,17),PSET,0,BF
- 12790 SYMBOL(476,6),TYMD$,.75!,.75!,7
- 12800 SYMBOL(542,6),WKM$,.75!,.75!,CW
- 12810 RETURN
- 12820 '
- 13000 '////////////////////////////////////////////////////////////////////
- 13001 ' LKEYIN v1.1a 全角文字移動改良 1993.02.12 T.Komura
- 13002 '--------- v1.2 挿入モードの変更他全面bugFIX 1993.08.04 T.Komura
- 13003 ' v2.0 グラフィックモード12dot用に改造 1994.07.30 T.Komura
- 13004 ' v2.1 マルチカラムに改造 1994.09.02 T.Komura
- 13005 ' v2.2 編集文字を初期表示するように改造1995.04.29 T.Komura
- 13006 '
- 13010 *LKEYIN :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
- 13020 ' 入力 = LX,LY : 表示開始座標 LG : 行数
- 13030 ' L$(ii): 初期文字列 LP : 行ピッチ
- 13040 ' LC : 表示文字色 lb : 非編集行文字色
- 13050 ' LL : 最大文字数 cbc : 背景色
- 13060 ' LINS : 挿入モード=1 出力=L$(ii) : 入力後の文字列
- 13070 '
- 13080 LCSRCL=6:LLINCL=4
- 13090 DEF FONT "システム 12ドット"
- 13100 ' CR MR ML INS DEL BS CAN
- 13120 CONSOLE 0,24,2
- 13130 CC$=CHR$(&H0D,&H1E,&H1F,&H1C,&H1D,&H12,&H7F,&H08,&H18)
- 13140 ' LMG$=SPACE$(LL):LMGD$=SPACE$(LL) :'2.1
- 13150 LA$=INKEY$:IF LA$<>"" THEN 13150
- 13160 IF LINS=1 THEN CWDT=1 ELSE CWDT=5
- 13170 LCSR=0:LGC=1 :'v2.1
- 13180 LINE(LX,LY)-(LX+LL*6+1,LY+11),PSET,%CBC,BF :'v2.2
- 13185 GET@A (LX,LY)-(LX+LL*6+1,LY+13),LMB# :'v2.0
- 13190 FOR LGII=1 TO LG:LXX=LX:LYY=LY+(LGII-1)*LP :'v2.1・・・・ 初期文字列表示
- 13200 PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.1
- 13210 SYMBOL(LXX,LYY),L$(LGII),.75!,.75!,LB :'v2.1
- 13220 NEXT LGII :'v2.1
- 13230 *SETLG :'----------行セット :'v2.1
- 13240 LYY=LY+(LGC-1)*LP :LM$=L$(LGC) :'v2.1
- 13250 SYMBOL(LXX,LYY),L$(LGC),.75!,.75!,LC :'v2.1
- 13260 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.1
- 13270 LCSRX=LCSR:GOSUB *LCSRDX
- 13280 LMX$=LEFT$(LM$+SPACE$(LL),LL)
- 13290 GOSUB *LMREAD
- 13300 IF LMGB$="1" THEN GOSUB *LCSRDEC
- 13310 *IN1C:' ・・・・・・・・・・ 1 文字入力
- 13320 LA$=INKEY$:IF LA$="" THEN 13320
- 13330 ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
- 13340 IF CLA=0 THEN 13360
- 13350 ON CLA GOTO *CR,*MU,*MD,*MR,*ML,*INS,*DEL,*BS,*CAN
- 13360 IF KANF=1 THEN *KANJI
- 13370 IF ALA<&H20 THEN BEEP:GOTO *IN1C
- 13380 IF ALA>=&H20 AND ALA<&H80 THEN *ANK
- 13390 IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
- 13400 GOTO *KANJI
- 13410 *ANK :' ・・・・・・・・・・ ANK 文字入力
- 13420 IF LINS=1 THEN 13440
- 13430 MID$(LMX$,LCSR+1,1)=LA$:GOTO 13450
- 13440 LMX$=LEFT$(LMX$,LCSR)+LA$+RIGHT$(LMX$,LL-LCSR)
- 13450 GOSUB *LCSRINC
- 13460 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13470 GOTO *IN1C
- 13480 *KANJI :' ・・・・・・・・・・ 漢字文字入力
- 13490 ON KANF+1 GOTO 13500,13530
- 13500 KANF=1:KANW$="":KANW$=LA$
- 13510 IF LCSR+1>=LL THEN KANF=0:BEEP
- 13520 GOSUB *LCSRD:GOTO *IN1C
- 13530 KANF=0:KANW$=KANW$+LA$
- 13540 IF LINS=1 THEN 13560
- 13550 MID$(LMX$,LCSR+1,2)=KANW$:GOTO 13570
- 13560 LMX$=LEFT$(LMX$,LCSR)+KANW$+RIGHT$(LMX$,LL-LCSR)
- 13570 GOSUB *LCSR2INC
- 13580 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13590 GOTO *IN1C
- 13600 *CR :GOSUB *LMREAD:GOSUB *LCSRDX '////////// End
- 13610 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.0 :'v2.1
- 13620 CONSOLE 0,24,0
- 13630 RETURN:'----------------------------------------------------------
- 13640 *MU :GOSUB *LMREAD2 '////////// up :v2.1
- 13645 *MU2:GOSUB *LMBDSP:LGC=LGC-1:IF LGC<1 THEN LGC=1
- 13655 GOTO *SETLG
- 13660 *MD :GOSUB *LMREAD2 '////////// down :v2.1
- 13665 *MD2:GOSUB *LMBDSP:LGC=LGC+1:IF LGC>LG THEN LGC=LG
- 13675 GOTO *SETLG
- 13680 *MR :GOSUB *LMREAD2 '////////// Right
- 13685 IF LMGF$="1" THEN GOSUB *LCSR2INC:GOTO *MUD :'v2.1
- 13690 GOSUB *LCSRINC :GOTO *MUD :'v2.1
- 13695 *ML :GOSUB *LMREAD2 '////////// Left
- 13700 IF LMGB$="2" THEN GOSUB *LCSR2DEC:GOTO *MUD :'v2.1
- 13705 GOSUB *LCSRDEC :GOTO *MUD :'v2.1
- 13710 *MUD:IF LCSC=0 THEN GOTO *IN1C '////////// line chg.ctrl:'v2.1
- 13715 IF LCSC=+1 THEN GOSUB *LMREAD2:LCSR=0 :GOTO *MD2
- 13720 IF LCSC=-1 THEN GOSUB *LMREAD2:LCSR=LL:GOTO *MU2
- 13725 *INS:GOSUB *LCSRDX:LINS=1-LINS '////////// Insert
- 13730 IF LINS=1 THEN CWDT=1 ELSE CWDT=5
- 13735 GOSUB *LCSRDX :GOTO *IN1C
- 13740 *DEL:GOSUB *LMREAD:LMX$=LEFT$(LMG$,LCSR) '////////// Delete
- 13745 IF LMGF$="1" THEN LDEF=2 ELSE LDEF=1
- 13750 LMX$=LMX$+MID$(LMG$,LCSR+LDEF+1,LL-LCSR-LDEF)+" "
- 13755 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13760 *BS :GOSUB *LMREAD '////////// BackSpace
- 13765 IF LCSR=0 THEN GOTO *IN1C
- 13770 IF LMGB$="2" THEN GOSUB *LCSR2DEC:LDEF=2:GOTO 13780
- 13775 GOSUB *LCSRDEC :LDEF=1:GOTO 13780
- 13780 LMX$=LEFT$(LMG$,LCSR)+RIGHT$(LMG$,LL-LCSR-LDEF)+" "
- 13785 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13790 *CAN :LMX$=SPACE$(LL) '////////// Clear
- 13795 GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
- 13800 GOSUB *LMREAD :GOTO *IN1C
- 13805 *LMREAD: '////////// Disp Char Read
- 13810 LMGFX$=MID$(LMGDX$,LCSR+1,1)
- 13815 IF LMGFX$="2" OR LMGF$="2" THEN MID$(LMX$,LCSR+1,1)=" "
- 13820 *LMREAD1:LMGD$=""
- 13825 FOR II=1 TO KLEN(LMX$)
- 13830 LMG=KTYPE(LMX$,II)
- 13835 IF LMG=0 THEN LMD$="0" ELSE LMD$="12"
- 13840 LMGD$=LMGD$+LMD$
- 13845 NEXT II
- 13850 IF LEN(LMGD$)<=LL THEN 13860
- 13855 LMGD$=LEFT$(LMGD$,LL):LMX$=LEFT$(LMX$,LL)
- 13860 IF RIGHT$(LMGD$,1)<>"1" THEN 13870
- 13865 MID$(LMGD$,LL,1)="0":MID$(LMX$,LL,1)=" "
- 13870 *LMREAD2:LMGF$=MID$(LMGD$,LCSR+1,1)
- 13875 IF LCSR=0 THEN LMGB$="0" ELSE LMGB$=MID$(LMGD$,LCSR,1)
- 13880 LMG$=LMX$:LMGDX$=LMGD$:L$(LGC)=LMG$
- 13885 RETURN
- 13890 *LCSRD :LXC=(LX+6*LCSR ):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Disp
- 13895 *LCSRDX:LXC=(LX+6*LCSRX):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Erace
- 13900 LCSRX=LCSR:RETURN
- 13905 *LCSRL :LINE(LXC,LYC+0)-(LXC+CWDT,LYC+12),XOR,LCSRCL,BF:RETURN
- 13910 *LCSRINC :LCSC=0:LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1:LCSC=+1
- 13915 GOSUB *LCSRD:RETURN
- 13920 *LCSR2INC:LCSC=0:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2:LCSC=+1
- 13925 GOSUB *LCSRD:RETURN
- 13930 *LCSRDEC :LCSC=0:LCSR=LCSR-1:IF LCSR<0 THEN LCSR=0 :LCSC=-1
- 13935 GOSUB *LCSRD:RETURN
- 13940 *LCSR2DEC:LCSC=0:LCSR=LCSR-2:IF LCSR<0 THEN LCSR=LCSR+2:LCSC=-1
- 13945 GOSUB *LCSRD:RETURN
- 13950 *LMXDSP :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.0 :'v2.1
- 13955 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.0
- 13960 SYMBOL(LX,LYY),LMX$,.75!,.75!,LC
- 13965 GOSUB *LCSRDX:RETURN
- 13970 *LMBDSP :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.1
- 13975 SYMBOL(LX,LYY),LMX$,.75!,.75!,LB:RETURN :'v2.1
- 13980 '-------------------------------------------------------------------
- 14000 'マウス,ウインドウ関係サブルーチン集 v1.0 1995.05.14
- 14010 '--------------------------------------------------
- 14020 '
- 14030 'マウスカーソル形状セット v1.0 1994.02.13
- 14040 *MCDSET
- 14050 MOUSE 2,MCAND$(MCN),MCDOT$(MCN),MC_X(MCN),MC_Y(MCN)
- 14060 RETURN
- 14070 *MCREAD
- 14080 RESTORE *MCDATA
- 14090 FOR II=1 TO 3
- 14100 FOR JJ=1 TO 32:MCAND$(II)="":MCDOT$(II)="":NEXT JJ
- 14110 READ MC_X(II),MC_Y(II)
- 14120 FOR JJ=1 TO 32:READ MCAND:MCAND$(II)=MCAND$(II)+CHR$(MCAND):NEXT JJ
- 14130 FOR JJ=1 TO 32:READ MCDOT:MCDOT$(II)=MCDOT$(II)+CHR$(MCDOT):NEXT JJ
- 14140 NEXT II
- 14150 RETURN
- 14160 *MCDATA
- 14170 '指 ////////////////////////////////////////
- 14171 DATA 0,0
- 14172 DATA &H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H83,&HFF' and
- 14173 DATA &HC0,&H3F,&HE0,&H07,&HF0,&H01,&HF8,&H00
- 14174 DATA &HF0,&H00,&HE0,&H00,&HE0,&H00,&HE0,&H00
- 14175 DATA &HE0,&H00,&HF0,&H00,&HF8,&H00,&HFC,&H00
- 14176 DATA &H00,&H00,&H60,&H00,&H30,&H00,&H18,&H00' dot
- 14177 DATA &H0C,&H00,&H06,&H80,&H03,&H50,&H01,&HAA
- 14178 DATA &H05,&HFE,&H04,&HFE,&H06,&HFE,&H07,&HFE
- 14179 DATA &H03,&HFF,&H01,&HFF,&H00,&H7F,&H00,&H1F
- 14180 'コーヒー///////////////////////////////////
- 14181 DATA 7,7
- 14182 DATA &HFF,&HFF,&HF2,&H4F,&HE4,&H9F,&HE4,&H9F' and
- 14183 DATA &HE6,&H1F,&HF2,&H4F,&HC0,&H07,&HC0,&H01
- 14184 DATA &HC0,&H06,&HC0,&H06,&HC0,&H05,&HC0,&H03
- 14185 DATA &HE0,&H0F,&H80,&H01,&HC0,&H03,&HE0,&H07
- 14186 DATA &H00,&H00,&H04,&H90,&H09,&H20,&H09,&H20' dot
- 14187 DATA &H08,&HA0,&H04,&H90,&H00,&H00,&H1F,&HF0
- 14188 DATA &H15,&HF0,&H13,&H30,&H15,&H30,&H1F,&HF0
- 14189 DATA &H0F,&HE0,&H00,&H00,&H1F,&HF8,&H00,&H00
- 14190 '待った //////////////////////////////////////
- 14191 DATA 7,7
- 14192 DATA &HF0,&H1F,&HC0,&H07,&H80,&H03,&H80,&H03' and
- 14193 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H00,&H01
- 14194 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H80,&H03
- 14195 DATA &H80,&H03,&HC0,&H07,&HF0,&H1F,&HFF,&HFF
- 14196 DATA &H00,&H00,&H00,&H00,&H07,&HC0,&H1F,&H80' dot
- 14197 DATA &H1F,&H00,&H3E,&H08,&H3C,&H18,&H38,&H38
- 14198 DATA &H30,&H78,&H20,&HF8,&H01,&HF0,&H03,&HF0
- 14199 DATA &H07,&HC0,&H00,&H00,&H00,&H00,&H00,&H00
- 14200 '
- 14210 *MCDRAG 'ドラッグ -----------------------------------------------
- 14220 MOUSE 1,X_M,Y_M,1 :'現在位置にカーソルを設定
- 14225 MD_XB1=W_X1(G):MD_YB1=W_Y1(G) :MD_XC1=W_X1(G):MD_YC1=W_Y1(G) :'旧ウインドウ座標保持
- 14230 MD_XB2=W_X2(G):MD_YB2=W_Y2(G) :MD_XC2=W_X2(G):MD_YC2=W_Y2(G) :'旧ウインドウ座標保持
- 14235 GET@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SW#
- 14238 X1=X_M-W_X1(G)+W_XA(G):X2=X_M+W_XB(G)-W_X2(G):'最大移動域の設定
- 14239 Y1=Y_M-W_Y1(G)+W_YA(G):Y2=Y_M+W_YB(G)-W_Y2(G):'
- 14240 MOUSE 4,X1,Y1,X2,Y2 :'最大移動域の設定
- 14245 GOSUB *MD_WLINED
- 14250 IF MOUSE(2,0)=-1 THEN 14245 :'枠移動
- 14255 LINE(MD_XC1,MD_YC1)-(MD_XC2,MD_YC2),XOR,4,B,&HCCCC :'枠線消去
- 14260 PUT@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SB# :'旧ウインドウ背景表示
- 14265 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB# :'新ウインドウ背景保持
- 14270 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SW# :'新ウインドウ描画
- 14275 MOUSE 4,0,0,639,479:WAIT SWAIT\4+1:RETURN
- 14280 *MD_WLINED
- 14285 MD_X_M=MOUSE(9) :MD_Y_M=MOUSE(10) :'移動量取得
- 14290 W_X1(G)=W_X1(G)+(MD_X_M):W_Y1(G)=W_Y1(G)+(MD_Y_M):'新座標計算
- 14295 W_X2(G)=W_X2(G)+(MD_X_M):W_Y2(G)=W_Y2(G)+(MD_Y_M)
- 14300 LINE(MD_XC1 ,MD_YC1 )-(MD_XC2 ,MD_YC2 ),XOR,4,B,&HCCCC :'枠線移動
- 14305 LINE(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),XOR,4,B,&HCCCC
- 14310 MD_XC1=W_X1(G):MD_YC1=W_Y1(G)
- 14315 MD_XC2=W_X2(G):MD_YC2=W_Y2(G)
- 14320 RETURN
- 14400 '------------------------------------------------------------------
- 14405 *ボタン座標読み取り
- 14410 RESTORE *ボタン座標:READ SWGN
- 14415 FOR G=1 TO SWGN
- 14420 READ SWN(G), W_X1(G),W_X2(G),W_Y1(G),W_Y2(G), W_XA(G),W_XB(G),W_YA(G),W_YB(G)
- 14425 FOR B=1 TO SWN(G):READ B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B):NEXT B
- 14430 NEXT G
- 14435 RETURN
- 14500 '-----------------------------------------------------------------
- 14505 *BTN_ONOFF:'ボタンON_OFF表示
- 14510 IF BST(G,B)=1 THEN BSC=15:BSB=1:GOTO 14520
- 14515 BSC=1:BSB=15
- 14520 X1=W_X1(G)+B_X1(G,B):X2=W_X1(G)+B_X2(G,B)
- 14521 Y1=W_Y1(G)+B_Y1(G,B):Y2=W_Y1(G)+B_Y2(G,B)
- 14522 CONNECT(X1,Y2)-(X2,Y2)-(X2,Y1),%BSC,PSET
- 14523 CONNECT(X1,Y2)-(X1,Y1)-(X2,Y1),%BSB,PSET
- 14530 IF BSNDOFF=1 THEN WAIT SWAIT\10+1:GOTO 14540
- 14535 IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT SWAIT\5+1
- 14540 BSNDOFF=0:RETURN
- 14600 '-----------------------------------------------------------------
- 14610 *MCSELECT:'マウスボタン選択
- 14620 SWERC=0:SWNO=0:X_M=-1:Y_M=-1 :'リセット
- 14630 *クリック待ち
- 14640 IF MOUSE(2,0)=-1 THEN 14680 :'左クリック入力待ち
- 14650 IF MOUSE(2,1)=-1 THEN SWNO=-1:RETURN :'右クリックで終了
- 14660 IF MCKEY=1 THEN GOTO 14830 :'MCKEY=1: マウススキャン中断、キー入力受付
- 14670 GOTO *クリック待ち
- 14680 X_M=MOUSE(4,0):Y_M=MOUSE(5,0) :'座標取得
- 14690 FOR IMS=1 TO SWN(G) :'ボタン座標判定
- 14700 IF (X_M>W_X1(G)+B_X1(G,IMS)) AND (X_M<W_X1(G)+B_X2(G,IMS)) ELSE 14730
- 14710 IF (Y_M>W_Y1(G)+B_Y1(G,IMS)) AND (Y_M<W_Y1(G)+B_Y2(G,IMS)) ELSE 14730
- 14720 SWNO=IMS:IMS=SWN(G)+1
- 14730 NEXT IMS
- 14735 WAIT SWAIT\8+1 'FOR II=1 TO 500:NEXT II
- 14740 IF (SWPASS=1) OR (SWNO<>0) THEN 14830
- 14750 IF SWNO=0 THEN
- 14760 GOSUB *MCMIS:SWERC=SWERC+1 '誤指定警告表示
- 14770 IF SWERC>5 THEN
- 14780 MCN=3:GOSUB *MCDSET:MESN=12:GOSUB *SNDMSG '誤指定警告音声案内
- 14790 MCN=1:GOSUB *MCDSET
- 14800 ENDIF
- 14810 ENDIF
- 14820 GOTO *クリック待ち
- 14830 SWPASS=0:SW1T=0:MCKEY=0
- 14840 RETURN
- 14850 *MCMIS
- 14860 MCN=3:GOSUB *MCDSET:WAIT SWAIT\3+1:MCN=1:GOSUB *MCDSET
- 14870 RETURN
- 14880 '
- 14890 '
- 15000 '
- 15010 ' SAVE"TCLOCK.sub" :' 組み込み型 アナログ時計 V1.1
- 15020 ' 1991.05 T.KOMURA
- 15030 '--------------------------------------------------------------------
- 15040 '
- 15220 *時計表示:'///////////////////////////////////
- 15230 XCLK0=579:YCLK0=11:CLKR=9:PI=3.1415!
- 15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
- 15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
- 15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
- 15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
- 15280 GOSUB *短針表示
- 15290 GOSUB *長針表示
- 15300 GOSUB *秒針表示
- 15305 IF DCLOCKF=1 THEN GOSUB *DCLOCKD
- 15310 CLOCKINIT=1:DATX$=DATE$
- 15320 RETURN
- 15330 '
- 15340 *短針表示
- 15350 XHD1=XCLK0+(CLKR*.6!)*SIN(HRR):XHD2=XCLK0
- 15360 YHD1=YCLK0-(CLKR*.6!)*COS(HRR):YHD2=YCLK0
- 15370 IF CLOCKINIT=0 THEN 15400
- 15380 IF SCR<>0 THEN 15420
- 15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
- 15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
- 15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
- 15420 RETURN
- 15430 *長針表示
- 15440 XMD1=XCLK0+(CLKR*.8!)*SIN(MNR):XMD2=XCLK0
- 15450 YMD1=YCLK0-(CLKR*.8!)*COS(MNR):YMD2=YCLK0
- 15460 IF CLOCKINIT=0 THEN 15490
- 15470 IF SCR<>0 THEN 15510
- 15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
- 15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
- 15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
- 15510 RETURN
- 15520 *秒針表示
- 15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
- 15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
- 15550 IF CLOCKINIT=0 THEN 15570
- 15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
- 15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
- 15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
- 15590 RETURN
- 15600 '////////////////////////////////////////////////////////////////////
- 15605 ' DIGITAL CLOCK v1.0 1995.05.24 T.Komura
- 15610 *DCLOCKREAD:'プログラム先頭で実施
- 15615 RESTORE *DCLOCKDATA
- 15620 FOR DGII=0 TO 9:FOR DGN=1 TO 7:READ DGP(DGII,DGN):NEXT:NEXT
- 15625 FOR DGII=1 TO 9:READ DGX(DGII),DGY(DGII):NEXT
- 15630 FOR DGII=1 TO 4:READ DGO(DGII):NEXT
- 15635 RETURN
- 15640 *DGCLOCK:'デジタル時計 -------------------------------
- 15645 G=8:SWNOX=SWNO:DGINIT=0:DGFC=15:DGBC=1
- 15650 GOSUB *DCLOCKLOAD:GOSUB *DCLOCKD:DCLOCKF=1
- 15655 *DGMCSEL
- 15660 GOSUB *MCSELECT:'マウスボタン選択
- 15665 IF SWNO=0 THEN *DGMCSEL
- 15670 IF SWNO<0 THEN SWNO=1:'右クリックで終了
- 15675 ' end drag
- 15680 ON SWNO GOTO *DGS01,*DGS02
- 15685 *DGS02:'drag
- 15690 DCLOCKF=0
- 15692 GOSUB *MCDRAG
- 15694 DCLOCKF=1
- 15695 GOTO *DGMCSEL
- 15700 *DGS01:'end
- 15705 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 15710 DCLOCKF=0
- 15715 GOSUB *DCLOCKCLR
- 15720 SWNO=SWNOX
- 15725 RETURN
- 15730 *DCLOCKLOAD
- 15735 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 15740 MOUSE 1,,,0
- 15745 LOAD@ TIFDRV$+"\dclock.tif",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
- 15750 MOUSE 1,,,1:RETURN
- 15760 *DCLOCKCLR
- 15765 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 15770 RETURN
- 15775 '
- 15780 *DCLOCKD
- 15785 IF DGINIT=1 THEN 15795
- 15790 FOR DGII=1 TO 4:DGM(DGII)=10:NEXT DGII:DGINIT=1
- 15795 DG(1)=VAL(MID$(TIME$,1,1)):DG(2)=VAL(MID$(TIME$,2,1))
- 15800 DG(3)=VAL(MID$(TIME$,4,1)):DG(4)=VAL(MID$(TIME$,5,1))
- 15805 DGPT=1-DGPT
- 15810 FOR DGII=1 TO 4
- 15815 IF DG(DGII)=DGM(DGII) THEN 15840
- 15820 FOR DGJJ=1 TO 7
- 15825 IF DGP(DG(DGII),DGJJ)=1 THEN DGC=DGFC ELSE DGC=DGBC
- 15826 IF DGII=1 AND DG(1)=0 THEN DGC=DGBC
- 15830 PAINT(W_X1(G)+DGX(DGJJ)+DGO(DGII),W_Y1(G)+DGY(DGJJ)),%DGC,0
- 15835 NEXT DGJJ
- 15840 NEXT DGII
- 15841 IF DGPT=1 THEN DGC=10 ELSE DGC=DGBC
- 15842 PAINT(W_X1(G)+DGX(8),W_Y1(G)+DGY(8)),%DGC,0
- 15843 PAINT(W_X1(G)+DGX(9),W_Y1(G)+DGY(9)),%DGC,0
- 15845 FOR DGII=1 TO 4:DGM(DGII)=DG(DGII):NEXT DGII'
- 15850 RETURN
- 15855 '
- 16000 '-------------------------------------------------------------------
- 16005 *HKCALC' 16000-
- 16010 ' SAVE"hkcalc.sub" :' 組み込み型 家計簿電卓 V1.1
- 16015 ' 1993.09 T.KOMURA
- 16020 ' 1994.06 T.KOMURA 消費税計算追加 v1.2
- 16021 ' 1995.05 T.KOMURA ウインドウドラッグ対応 v1.2
- 16025 '--------------------------------------------------------------------
- 16030 CALCCN$="0123456789" :G=4
- 16035 CALCCC$=CHR$(&H0D,&H2E,&H3D,&H2A,&H2F,&H2B,&H2D,&H1B,&H08,&H18,&H09)
- 16040 ' CR . = * / + - ESC BS CAN TAB
- 16045 CALCC$=CALCCN$+CALCCC$
- 16050 GOSUB *電卓枠表示
- 16055 CALCD=0:CALP=0:CALI$="0":CALTAXF=0:ENDF=1 :'v1.2
- 16060 IF SSUB=0 THEN CALN#=VAL(DYN$(IPNO)) ELSE CALN#=VAL(SDYN$(SPNO))
- 16065 CALR#=CALN#:CALRX#=CALR#
- 16070 CALD$=RIGHT$(SPACE$(12)+STR$(CALN#),12)
- 16075 CALDF=0:GOSUB *電卓数値表示
- 16080 A$=INKEY$:IF A$<>"" THEN 16080
- 16085 *CALCMAIN'///////////////////////////
- 16090 GOSUB *CALCIN
- 16092 IF SWNO<0 THEN SWNO=11+8
- 16095 IF (CALE=1) AND (SWNO<>21) THEN *CALCMAIN
- 16100 IF SWNO=23 THEN GOSUB *MCDRAG :GOTO *CALCMAIN
- 16102 G=4:B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 16105 IF SWNO<11 THEN GOTO *数値入力
- 16110 IF SWNO=11 THEN GOTO *千入力
- 16115 ON SWNO-11 GOTO *CA1,*CA2,*CA3,*CA4,*CA5,*CA6,*CA7,*CA8,*CA9,*CA10,*CA11
- 16120 ' CR . = * / + - ESC BS CAN tax:'v1.2
- 16125 *CA1 : GOSUB *CALCEXE :'---------------------[CR ]
- 16130 IF CALE=1 THEN GOTO *CALCMAIN
- 16135 CALDF=2:GOSUB *電卓数値表示
- 16140 CALN#=0:CALI$="0":CALP=0
- 16145 CALM$="OK":GOSUB *電卓記号表示
- 16150 CALRX#=CALR#:ENDF=0:GOTO *CA8
- 16155 *CA2 : IF CALP=1 THEN 16170 :'---------------------[ . ]
- 16160 CALI$=RIGHT$(SPACE$(12)+CALI$+".",12)
- 16165 CALP=1:CALDF=1:GOSUB *電卓数値表示
- 16170 G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:GOSUB *BTN_ONOFF
- 16175 GOTO *CALCMAIN
- 16180 *CA3 GOSUB *CALCEXE:CALCD=5 :'---------------------[ = ]
- 16185 IF CALE=1 THEN GOTO *CALCMAIN
- 16190 CALDF=2:GOSUB *電卓数値表示
- 16195 CALN#=0:CALI$="0":CALP=0:PLAY "V8O7L8EC"
- 16200 CALM$="▼":GOSUB *電卓記号表示 :GOTO *CALCMAIN
- 16205 *CA4 : GOSUB *CALCEXE:CALCD=1 :'---------------------[ * ]
- 16210 CALM$="×":GOSUB *電卓記号表示 :GOTO *CALCMAIN
- 16215 *CA5 : GOSUB *CALCEXE:CALCD=2 :'---------------------[ / ]
- 16220 CALM$="÷":GOSUB *電卓記号表示 :GOTO *CALCMAIN
- 16225 *CA6 : GOSUB *CALCEXE:CALCD=3 :'---------------------[ + ]
- 16230 CALM$="+":GOSUB *電卓記号表示 :GOTO *CALCMAIN
- 16235 *CA7 : GOSUB *CALCEXE:CALCD=4 :'---------------------[ - ]
- 16240 CALM$="-":GOSUB *電卓記号表示 :GOTO *CALCMAIN
- 16245 *CA8 : GOSUB *電卓枠消去 :'---------------------[ESC]
- 16250 RETURN
- 16255 *CA9 : CALN#=0:CALD$="0":CALI$="0":CALP=0:CALTAXF=0:'--------[BS ]:'v1.2
- 16260 CALDF=1:GOSUB *電卓数値表示
- 16265 CALM$="△":GOSUB *電卓記号表示
- 16270 G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:GOSUB *BTN_ONOFF
- 16275 GOTO *CALCMAIN
- 16280 *CA10: CALCD=0:CALP=0:CALE=0:CALTAXF=0:'---------------------[CAN]:'v1.2
- 16285 CALN#=0:CALR#=0:CALD$="0":CALI$="0"
- 16290 CALDF=1:GOSUB *電卓数値表示
- 16295 CALM$="▽":GOSUB *電卓記号表示
- 16300 G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:GOSUB *BTN_ONOFF
- 16305 GOTO *CALCMAIN
- 16310 *CA11: IF CALCD=1 THEN 16320 ELSE G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:'v1.2
- 16315 GOSUB *BTN_ONOFF:GOTO *CALCMAIN
- 16320 CALI$=RIGHT$(SPACE$(10)+TAXR$,10):CALTAXF=1
- 16325 CALM$="税":GOSUB *電卓記号表示: CALP=1:GOTO 16350
- 16330 *千入力
- 16335 CALI$=RIGHT$(SPACE$(10)+CALI$+"000",10):GOTO 16350
- 16340 *数値入力
- 16345 CALI$=RIGHT$(SPACE$(10)+CALI$+RIGHT$(STR$(SWNO-1),1),10)
- 16350 IF CALP=1 THEN 16365
- 16355 CALN#=VAL(RIGHT$(CALI$,10))
- 16360 IF ABS(CALN#)>=0 THEN CALI$=RIGHT$(SPACE$(10)+STR$(CALN#),10)
- 16365 CALDF=1:GOSUB *電卓数値表示
- 16370 IF CALCD=5 THEN CALR#=0:CALCD=0
- 16375 G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:GOSUB *BTN_ONOFF
- 16380 GOTO *CALCMAIN
- 16385 *CALCEXE
- 16390 IF CALP=1 THEN CALN#=VAL(CALI$)
- 16395 ON CALCD+1 GOSUB *CAL0,*CAL1,*CAL2,*CAL3,*CAL4,*CAL0
- 16400 IF CALE=1 THEN 16440
- 16405 IF CALCD>0 AND CALCD<5 THEN 16420
- 16410 IF CALCD=0 THEN CALR#=CALN#
- 16415 CALN#=0:GOTO 16435
- 16420 CALK#=CALR#:GOSUB *電卓数値チェック
- 16425 IF CALE=1 THEN 16440 ELSE CALR#=CALK#
- 16430 CALDF=2:GOSUB *電卓数値表示
- 16435 CALI$="0":CALP=0
- 16440 G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:GOSUB *BTN_ONOFF
- 16445 RETURN
- 16450 *CAL0: RETURN
- 16455 *CAL1:CALR#=CALR#*CALN#:RETURN
- 16460 *CAL2:IF CALN#=0 THEN GOSUB *CALERR2:RETURN
- 16465 CALR#=CALR#/CALN#:RETURN
- 16470 *CAL3:CALR#=CALR#+CALN#:RETURN
- 16475 *CAL4:CALR#=CALR#-CALN#:RETURN
- 16480 *CALCIN
- 16485 G=4:SWPASS=1:MCKEY=1:GOSUB *MCSELECT'ボタン選択:'sw1tをmckeyに変更
- 16490 IF SWNO<>0 THEN GOTO 16515
- 16495 A$=INKEY$:IF A$="" THEN *CALCIN
- 16500 A=INSTR(CALCC$,A$)
- 16505 IF A=0 THEN *CALCIN
- 16510 IF A>10 THEN SWNO=A+1 ELSE SWNO=A
- 16515 PLAY "@21v2o5l64a@30":RETURN
- 16520 *電卓枠表示
- 16522 MOUSE 1,,,0
- 16525 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 16526 LOAD@ TIFDRV$+"\hk2calc.TIF",(W_X1(G),W_Y1(G))
- 16535 MOUSE 1,,,1
- 16540 CALMES$=CFI$(IPNO)+":金額記入":SYMBOL(W_X1(G)+10,W_Y1(G)+20),CALMES$,.75!,.75!,1
- 16545 CALM$="▽":GOSUB *電卓記号表示
- 16550 RETURN
- 16555 *電卓数値表示
- 16560 LINE(W_X1(G)+10,W_Y1(G)+36)-(W_X1(G)+132,W_Y1(G)+50),PSET,0,BF
- 16565 IF CALDF=0 THEN CALD$=CALD$
- 16570 IF CALDF=1 THEN CALD$=CALI$
- 16575 IF CALDF=2 THEN CALD$=RIGHT$(SPACE$(11)+STR$(CALR#),11)
- 16580 CALD$=RIGHT$(SPACE$(12)+CALD$,12)
- 16585 SYMBOL(W_X1(G)+10,W_Y1(G)+36),CALD$,1.2!,.75!,4
- 16590 RETURN
- 16595 *電卓枠消去
- 16600 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 16610 RETURN
- 16615 *電卓記号表示
- 16620 LINE(W_X1(G)+109,W_Y1(G)+20)-(W_X1(G)+128,W_Y1(G)+35),PSET,0,BF
- 16625 SYMBOL(W_X1(G)+109,W_Y1(G)+20),CALM$,.75!,.75!,5
- 16630 RETURN
- 16635 *電卓数値チェック:CALE=0
- 16640 IF ABS(CALK#)>9999999999# THEN GOTO *CALERR1
- 16645 IF LEN(STR$(CALK#))<=10 THEN 16690
- 16650 CALKA#=INT(CALK#):CALKB#=CALK#-INT(CALK#)
- 16655 IF CALKB#=0 THEN 16690
- 16660 CALKB#=CALKB#*10000:CALKB#=CINT(CALKB#)/10000
- 16665 IF CALTAXF=0 THEN 16680 ELSE CALTAXF=0 :'v1.2
- 16670 IF CALKB#<=.4999! THEN CALKB#=0:GOTO 16680 :'v1.2
- 16675 CALKB#=0:CALKA#=CALKA#+1 :'v1.2
- 16680 CALK#=CALKA#+CALKB#:CALK$=STR$(CALK#)
- 16685 IF LEN(CALK$)>11 THEN CALK#=VAL(LEFT$(CALK$,11))
- 16690 RETURN
- 16695 *CALERR1:CALED$="ERROR Over Flow":GOTO *CALED
- 16700 *CALERR2:CALED$="ERROR Devision by 0":GOTO *CALED
- 16705 *CALED :PLAY "V8O7L16DDD" :CALE=1
- 16710 LINE(W_X1(G)+10,W_Y1(G)+36)-(W_X1(G)+132,W_Y1(G)+50),PSET,0,BF
- 16715 SYMBOL(W_X1(G)+10,W_Y1(G)+36),CALED$,.75!,.75!,2
- 16720 CALM$="..":GOSUB *電卓記号表示
- 16725 RETURN
- 16730 '
- 18000 '------------------------------------------------------------------
- 18005 *HKHELP:' Copyrigit(C) T.Komura / HK2 /
- 18010 ' Version 1.0 1994.07.30 / helpプログラム /
- 18011 ' Version 2.0 1995.07.30 HK2ドラッグ対応
- 18015 'メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 18016 G=7:SWNOX=SWNO:DOCDC=6:DOCBC=8
- 18020 GOSUB *DOCTIFDSP:GOSUB *DOCFREAD
- 18026 MCN=1:GOSUB *MCDSET
- 18030 GOSUB *DOC初期表示
- 18035 *DC_MSINSEL
- 18040 SWPASS=1:G=7:GOSUB *MCSELECT:'マウスボタン選択
- 18042 IF SWNO=0 THEN GOSUB *DC_他エリア判定
- 18043 IF SWNO<0 THEN SWNO=5
- 18045 IF SWNO>7 OR SWNO=0 THEN *DC_MSINSEL
- 18050 IF SWNO=5 THEN GOTO *SDC_05
- 18055 IF SWNO=6 THEN GOTO *SDC_06
- 18060 IF SWNO=7 THEN GOTO *SDC_07
- 18065 GOTO *DOCCTRL
- 18070 *DOCCTRL
- 18075 G=7:B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 18080 DCCD=SWNO:GOSUB *DOC表示制御
- 18085 G=7:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 18090 GOTO *DC_MSINSEL
- 18095 *SDC_06: GOSUB *MCDRAG :GOTO *DC_MSINSEL
- 18100 *SDC_07:DCCD=5:GOSUB *DOC表示制御:GOTO *DC_MSINSEL
- 18105 *SDC_05:'終了
- 18110 G=7:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 18115 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 18120 DOCCS=0:SWNO=SWNOX
- 18122 RETURN:'///////////////////////////////////////////////////
- 18125 '
- 18130 'sub routine---------------------------------------------
- 18135 *DOCTIFDSP
- 18137 MOUSE 1,,,0
- 18140 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 18145 LOAD@ TIFDRV$+"\hk2help.tif",(W_X1(G),W_Y1(G))
- 18165 MOUSE 1,,,1:GOSUB *DOC名称表示
- 18170 RETURN
- 18175 *DOCFREAD:'helpファイル読み込み
- 18177 MCN=2:GOSUB *MCDSET
- 18180 DOCN=0:OPEN "I",#1,PRGDRV$+"\HELPF"+DOCF$
- 18185 IF EOF(1)=-1 THEN 18200
- 18190 DOCN=DOCN+1:LINE INPUT #1,DOC$(DOCN)
- 18195 GOTO 18185
- 18200 CLOSE #1:RETURN
- 18205 *DOC指定行表示
- 18210 GOSUB *DOCカーソル表示
- 18220 FOR DN=SDN TO EDN
- 18225 XDC=W_X1(G)+8:YDC=W_Y1(G)+27+DCL*12
- 18230 SYMBOL(XDC,YDC),DOC$(DN),.75!,.75!,7
- 18235 DCL=DCL+1
- 18240 NEXT DN:RETURN
- 18245 *DOC初期表示
- 18250 SDN=1:EDN=24:DCL=0:DSP=1:GOSUB *DOC指定行表示
- 18255 RETURN
- 18260 *DOC表示制御:'///////////////////////////////////////
- 18265 ON DCCD GOTO *DCC3,*DCC1,*DCC2,*DCC4,*DCC5
- 18270 *DCC1:'------ 前行
- 18275 DSP=DSP-1 :IF DSP<1 THEN DSP=1 :RETURN
- 18280 SDN=DSP :GOSUB *DOC下シフト
- 18285 EDN=SDN :DCL=0 :GOSUB *DOC指定行表示 :RETURN
- 18290 *DCC2:'------ 次行
- 18295 DSP=DSP+1 :IF DSP+23>DOCN THEN DSP=DSP-1:RETURN
- 18300 SDN=DSP+23: GOSUB *DOC上シフト
- 18305 EDN=SDN :DCL=23:GOSUB *DOC指定行表示 :RETURN
- 18310 *DCC3:'------ 前頁
- 18315 DSP=DSP-24:IF DSP<1 THEN DSP=1
- 18320 GOTO *DCC51
- 18325 *DCC4:'------ 次頁
- 18330 DSP=DSP+24:IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
- 18335 GOTO *DCC51
- 18340 *DCC5:'------ カーソル指定
- 18345 DSP=((INT(DOCN*DOCR))\24)*24+1
- 18350 IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
- 18355 *DCC51
- 18360 SDN=DSP :EDN=SDN+23
- 18365 IF EDN>DOCN THEN EDN=EDN-1:GOTO 18365
- 18370 LINE (W_X1(G)+6,W_Y1(G)+27)-(W_X1(G)+492,W_Y1(G)+27+12*24),PSET,%DOCBC,BF
- 18375 DCL=0:GOSUB *DOC指定行表示 :RETURN
- 18380 '------------------------------------------------------
- 18385 *DOC上シフト
- 18386 X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
- 18390 GET@A(X1,Y1+12*1 )-(X2,Y2+12*24),HLPC#
- 18395 LINE (X1,Y1+12*23)-(X2,Y2+12*24),PSET,%DOCBC,BF
- 18400 PUT@A(X1,Y1 )-(X2,Y2+12*23),HLPC#
- 18405 RETURN
- 18410 *DOC下シフト
- 18411 X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
- 18415 GET@A(X1,Y1 )-(X2,Y2+12*23),HLPC#
- 18420 LINE (X1,Y1 )-(X2,Y2+12*1 ),PSET,%DOCBC,BF
- 18425 PUT@A(X1,Y1+12*1)-(X2,Y2+12*24),HLPC#
- 18430 RETURN
- 18435 *DOCカーソル表示
- 18440 XDC1 =W_X1(G)+500:XDC2=W_X1(G)+511
- 18445 YDC1 =W_Y1(G)+53+INT(233*((DSP-1) /DOCN))
- 18450 YDC2 =W_Y1(G)+53+INT(233*((DSP+23) /DOCN))
- 18451 A=W_Y1(G)+B_Y1(G,3):IF YDC2>=A THEN YDC2=A-1
- 18455 YDC1X=W_Y1(G)+53+INT(233*((DSPX-1) /DOCN))
- 18460 YDC2X=W_Y1(G)+53+INT(233*((DSPX+23)/DOCN))
- 18461 A=W_Y1(G)+B_Y1(G,3):IF YDC2X>=A THEN YDC2X=A-1
- 18465 IF DOCCS=1 THEN 18470 ELSE DOCCS=1:GOTO 18475
- 18470 LINE(XDC1,YDC1X)-(XDC2,YDC2X),XOR,5,BF
- 18475 LINE(XDC1,YDC1 )-(XDC2,YDC2 ),XOR,5,BF
- 18480 DSPX=DSP :RETURN
- 18485 *DOC名称表示
- 18490 XDC=W_X1(G)+427:YDC=W_Y1(G)+7
- 18495 DOCD$=RIGHT$(DOCF$,LEN(DOCF$)-1)
- 18500 SYMBOL(XDC,YDC),DOCD$,.75!,.75!,%DOCDC
- 18505 RETURN
- 18810 *DC_他エリア判定
- 18830 IF (X_M>(W_X1(G)+499) AND X_M<(W_X1(G)+512)) ELSE 18845
- 18835 IF (Y_M>(W_Y1(G)+ 53) AND Y_M<(W_Y1(G)+288)) ELSE 18845
- 18840 DOCR=(Y_M-(W_Y1(G)+53))/235:SWNO=7
- 18845 RETURN
- 18850 '
- 19000 '
- 19010 '//////////////////////////////////////////////////////////////
- 19020 *ERROR:' エラー処理サブルーチン V1.10 1990.11.08 T.Komura
- 19030 '
- 19040 '
- 19050 IF ERR=53 THEN *IOERR
- 19060 IF ERR=63 THEN *FILNOF
- 19070 IF ERR=67 THEN *DSKFUL
- 19080 IF ERR=71 THEN *DSKUNF
- 19090 IF ERR=72 THEN *DSKOFF
- 19100 IF ERR=73 THEN *DSKWP
- 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
- 19120 GOSUB *ERMSG
- 19130 STOP
- 19140 '////////// エラー処理
- 19150 *IOERR
- 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
- 19170 GOSUB *ERMSG:RESUME
- 19180 *DSKFUL
- 19190 ERMES$="ディスクが満杯です。 交換後、"
- 19200 GOSUB *ERMSG:RESUME
- 19210 *DSKUNF
- 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
- 19230 GOSUB *ERMSG:RESUME
- 19240 *DSKOFF
- 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
- 19260 GOSUB *ERMSG:RESUME
- 19270 *DSKWP
- 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
- 19290 GOSUB *ERMSG:RESUME
- 19300 *FILNOF
- 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
- 19320 GOSUB *ERMSG:RESUME
- 19330 '
- 19340 *ERMSG:'////////// エラーメッセージ
- 19355 LINE(0,465)-(639,479),PSET,0,BF
- 19360 SYMBOL(0,465),ERMES$+"[実行]キーを押してね!",.75!,.75!,2
- 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
- 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
- 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
- 19400 LINE(0,465)-(639,479),PSET,0,BF
- 19410 SYMBOL(0,465),"エラー処理を終わります。",.75!,.75!,6
- 19420 RETURN
- 19430 '
- 19440 '
- 19450 '
- 20000 '------------------------------------------------------------------
- 20010 ' CUSTOM SUB ROUTINE FOR "DOQSO.BAS"
- 20020 '------------------------------------------------------------------
- 20100 *表紙表示
- 20101 SCREEN 1,0,2
- 20102 DEF FONT "システム 12ドット"
- 20105 LOAD@ TIFDRV$+"\HK2INx.TIF",(0,0)
- 20106 MESN=1:GOSUB *MESDSP
- 20107 LINE(125,6)-(343,21),PSET,%5,BF
- 20108 LINE(125,22)-(343,22),PSET,%1
- 20109 COLOR 7,0,0,0:SYMBOL(130,7),"Lite",.75!,.75!,7,,,&H01+&H04
- 20110 FOR II=1 TO 15
- 20115 X=68:Y=144+16*(II-1):IF II>3 THEN Y=Y+24
- 20116 SYMBOL(X,Y),CFI$(II),.75!,.75!,%1,,,,4
- 20125 NEXT II
- 20145 'INTERVAL ON
- 20160 RETURN
- 20190 '
- 20200 *検索ジャンプチェック
- 20205 GOSUB *DTCHK
- 20210 IF SRCJ=0 THEN RETURN
- 20215 GOSUB *DTLOAD
- 20220 YR$=LEFT$(DT$,4) :YR=VAL(YR$)
- 20222 MN$=MID$(DT$,6,2):MN=VAL(MN$)
- 20224 DY$=RIGHT$(DT$,2):DY=VAL(DY$)
- 20230 SRCJ=1:RETURN
- 20290 '
- 20300 *日付表示
- 20310 YR$=RIGHT$(STR$(YR),4)
- 20315 NBN=4:NBA$=YR$:GOSUB *数字漢字変換:KYR$=NBK$
- 20320 MN$=RIGHT$(STR$(100+MN),2)
- 20325 NBN=2:NBA$=MN$:GOSUB *数字漢字変換:KMN$=NBK$
- 20330 DY$=RIGHT$(STR$(100+DY),2)
- 20335 NBN=2:NBA$=DY$:GOSUB *数字漢字変換:KDY$=NBK$
- 20340 GOSUB *週検索:IF CW=7 THEN CW=6
- 20350 DEF FONT "システム 16ドット"
- 20352 LINE( 61,29)-(122,48),PSET,%8,BF:SYMBOL(61,31),KYR$,1,1,7,,,1
- 20354 LINE(143,29)-(174,48),PSET,%8,BF:SYMBOL(143,31),KMN$,1,1,7,,,1
- 20356 LINE(195,29)-(254,48),PSET,%8,BF:SYMBOL(195,31),KDY$,1,1,7,,,1
- 20358 SYMBOL(228,32),WKM$,1,1,CW
- 20360 DEF FONT "システム 12ドット"
- 20370 IYM$=YR$+MN$
- 20372 IF YMX<>YR+MN THEN GOSUB *カレンダー表示
- 20374 GOSUB *日カーソル表示
- 20376 GOSUB *行事表示
- 20378 YMX=YR+MN
- 20380 RETURN
- 20390 '
- 20400 *指定日データ表示 :'V2.0L10i
- 20410 GOSUB *HKISRC
- 20420 IF FIDX=1 THEN 20450
- 20430 REDSPF=0:GOSUB *新規ファイル作成
- 20440 GOTO 20410
- 20450 GOSUB *データ表示
- 20480 RETURN
- 20490 '
- 20495 '
- 20500 *データ表示
- 20505 MCN=2:GOSUB *MCDSET
- 20510 RDY=DY:GOSUB *HKDGET
- 20515 GOSUB *HKTFGET
- 20520 LINE(128,86)-(516,117),PSET,%8,BF
- 20522 SYMBOL(128,86 ), LEFT$(DEV$,64),.75!,.75!,7
- 20523 SYMBOL(128,86+16),RIGHT$(DEV$,64),.75!,.75!,7
- 20525 *データ表示2
- 20530 FOR II=1 TO 15
- 20531 YY=142+16*(II-1):IF II>3 THEN YY=YY+24
- 20532 LINE(130,YY)-(197,YY+14),PSET,%6,BF
- 20533 LINE(202,YY)-(517,YY+14),PSET,%6,BF
- 20534 SYMBOL(130,YY+2),DYN$(II),.75!,.75!,0
- 20535 SYMBOL(202,YY+2),DRM$(II),.75!,.75!,0
- 20536 NEXT II
- 20540 IF MID$(IMAK$,DY,1)<>" " THEN 20550
- 20545 LINE(513,29)-(519,30),PSET,0,BF:GOTO *合計表示
- 20550 LINE(513,29)-(519,30),PSET,4,BF:GOTO *合計表示
- 20555 *合計表示
- 20560 LINE(452,127)-(518,138),PSET,%6,BF:SYMBOL(464,127),DIYN$,.75!,.75!,%9
- 20561 LINE(452,199)-(518,210),PSET,%6,BF:SYMBOL(464,199),DOYN$,.75!,.75!,%10
- 20562 LINE(452,415)-(518,426),PSET,%6,BF:SYMBOL(464,415),DION$,.75!,.75!,%0
- 20563 LINE(452,434)-(518,445),PSET,%8,BF:SYMBOL(452,434),TTR$,.75!,.75!,%15
- 20580 RETURN
- 20590 '
- 20700 *新規ファイル作成
- 20710 ' FOR II=5 TO 22:LOCATE 12,II:PRINT SPACE$(66):NEXT II ' v2.0 cut
- 20720 IF (YR*12+MN)=(YRM*12+MNM+1) THEN 20750:'----次月チェック
- 20730 MESN=7:GOSUB *MESDSP:MESN=25:GOSUB *SNDMSG
- 20740 WAIT SWAIT\1+1:GOSUB *新規ファイル作成案内
- 20745 IF REDSPF=1 THEN RETURN
- 20750 MESN=3:GOSUB *MESDSP:'-----------------------確認
- 20760 CMES$="["+YR$+"年"+MN$+"月]ファイル新規作成"
- 20770 GOSUB *確認
- 20780 ON CAUNO GOTO 20800,20790
- 20790 YDEF=0:MDEF=-1:DDEF=0:GOSUB *年月日変更:GOSUB *日付表示
- 20795 REDSPF=1:RETURN
- 20800 MESN=5:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 20810 IYM$=YR$+MN$:IMAK$=SPACE$(32):'--------------IDX追加
- 20820 RI=IR+1:GOSUB *HKIPUT
- 20830 DEV$=SPACE$(128) :'------------ファイル作成
- 20835 FOR JJ=1 TO 16:DYN$(JJ)=SPACE$(10):DRM$(JJ)=SPACE$(52):NEXT JJ
- 20836 PCCD=1:PCMES$=CMES$:GOSUB *PROCD
- 20840 FOR RDY=1 TO 31
- 20842 LINE(70*8,465)-(639,479),PSET,0,BF
- 20845 SYMBOL(70*8,465),RIGHT$(STR$(RDY),2)+" / 31",.75!,.75!,4
- 20850 GOSUB *HKDPUT
- 20855 PCCD=3:PCCUR=RDY:PCMAX=31:PCINT=1:GOSUB *PROCD
- 20860 NEXT RDY:MESN=14:GOSUB *SNDMSG
- 20865 PCCD=2:GOSUB *PROCD
- 20870 RETURN
- 20880 '
- 20900 *新規ファイル作成案内
- 20910 MESN=22:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 20920 MYM=YR*12+MN
- 20930 IF REDSPF=1 THEN 20950
- 20935 IF MYM=(YRM*12+MNM+1) THEN 20990
- 20940 IF MYM>(YRM*12+MNM+1) THEN MDEF=-1:YDEF=0 :GOTO 20960
- 20950 IF MYM<(SSYR*12+SSMN) THEN MDEF=+1:YDEF=0:REDSPF=1:GOTO 20960
- 20955 RETURN
- 20960 DDEF=0:GOSUB *年月日変更:PLAY "o6v8E8"
- 20970 DY=1:GOSUB *日付表示
- 20980 GOTO 20920
- 20990 RETURN
- 20995 '
- 21000 *出来事入力
- 21010 MESN=10:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 21020 LX=128:LY=86:LC=6:LB=7:CBC=8:LL=64:LG=2:LP=16:LINS=1
- 21040 L$(1)=LEFT$(DEV$,64):L$(2)=RIGHT$(DEV$,64):GOSUB *LKEYIN
- 21050 DEV$=L$(1)+L$(2)
- 21060 SYMBOL(LX,LY ), LEFT$(DEV$,64),.75!,.75!,7
- 21065 SYMBOL(LX,LY+LP),RIGHT$(DEV$,64),.75!,.75!,7
- 21070 RETURN
- 21080 '
- 21100 *金額入力
- 21110 LX=130:LY=144+16*(IPNO-1):CBC=6:IF IPNO>3 THEN LY=LY+24
- 21120 IF CALCF=0 THEN 21135
- 21122 LINE(124,LY-2)-(198,LY+12),XOR,%6,BF
- 21124 GOSUB *HKCALC :LINE(124,LY-2)-(198,LY+12),XOR,%6,BF
- 21126 IF ENDF=1 THEN 21135
- 21130 DYN$=STR$(CALRX#) :GOTO 21152
- 21135 LC=1:LB=7:CBC=6:LL=10:LG=1:LP=1:LINS=0
- 21140 L$(1)=DYN$(IPNO):GOSUB *LKEYIN
- 21150 DYN$=L$(1)
- 21152 IF VAL(DYN$)=0 THEN DYN$=SPACE$(10):GOTO 21162 :'v2.0L10h
- 21155 DYN$(IPNO)=RIGHT$(SPACE$(10)+STR$(VAL(DYN$)),10)
- 21162 LINE(LX,LY)-(LX+6*10,LY+11),PSET,%CBC,BF
- 21165 SYMBOL(LX,LY),DYN$(IPNO),.75!,.75!,0
- 21168 GOSUB *HKDCAL:GOSUB *累計額計算
- 21170 GOSUB *合計表示
- 21172 RETURN
- 21174 '
- 21175 *内容入力
- 21180 LX=202:LY=144+16*(IPNO-1):CBC=6:IF IPNO>3 THEN LY=LY+24
- 21185 IF DICIF=0 THEN 21220
- 21190 LINE(200,LY-2)-(518,LY+12),XOR,%6,BF
- 21192 GOSUB *辞書入力:LINE(200,LY-2)-(518,LY+12),XOR,%6,BF
- 21195 IF ENDF=1 THEN 21220
- 21200 IF ENDF=0 THEN 21320
- 21220 LX=202:LY=144+16*(IPNO-1):IF IPNO>3 THEN LY=LY+24
- 21222 MESN=12:GOSUB *MESDSP
- 21225 LC=1:LB=7:CBC=6:LL=52:LG=1:LP=1:LINS=1
- 21240 L$(1)=DRM$(IPNO):GOSUB *LKEYIN
- 21250 DRM$(IPNO)=LMG$
- 21260 SYMBOL(LX,LY),DRM$(IPNO),.75!,.75!,0
- 21320 RETURN
- 21330 '
- 22000 '//////////////////////////////////////////////////////
- 22005 '定額支出編集 v1.4
- 22010 ' v1.5 1995.05 ドラッグ対応
- 22015 *定額支出編集
- 22020 G=5:SWNOCO=SWNO:COMODE=1
- 22025 GOSUB *定額編集枠表示
- 22030 GOSUB *HKCFGET
- 22035 GOSUB *定額支出表示
- 22040 *COSEL
- 22045 IF MESOF=1 THEN MESOF=0:GOTO 22055
- 22050 MESN=24:GOSUB *MESDSP:MESN=18:GOSUB *SNDMSG
- 22055 G=5:GOSUB *MCSELECT'ボタン選択:' swpass=1 cut
- 22056 IF SWNO<0 THEN SWNO=42
- 22057 IF SWNO=43 THEN GOSUB *MCDRAG:GOTO 22055
- 22060 IF SWNO=0 THEN 22055
- 22065 G=5:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 22070 IF SWNO=<10 THEN NCO=SWNO :GOSUB *定額項目入力 :GOTO *COGSEL
- 22075 IF SWNO=<20 THEN NCO=SWNO-10:GOSUB *定額項目上切換え:GOTO *COGSEL
- 22080 IF SWNO=<30 THEN NCO=SWNO-20:GOSUB *定額項目下切換え:GOTO *COGSEL
- 22085 IF SWNO=<40 THEN NCO=SWNO-30:GOSUB *定額項目転記 :GOTO *COGSEL
- 22090 IF SWNO=41 THEN GOSUB *全項目転記 :GOTO *COGSEL
- 22095 IF SWNO=42 THEN GOTO *定額編集終了
- 22100 *COGSEL
- 22105 G=5:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 22110 GOTO *COSEL
- 22115 *全項目転記 '
- 22120 FOR NCO=1 TO 10
- 22125 GOSUB *定額項目転記
- 22130 NEXT NCO
- 22135 RETURN
- 22140 *定額編集終了
- 22145 GOSUB *HKCFPUT
- 22150 GOSUB *定額編集枠消去
- 22155 GOSUB *データ表示
- 22160 SWNO=SWNOCO:COMODE=0
- 22165 RETURN
- 22170 '
- 22175 *定額項目入力 '
- 22180 MESN=25:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 22181 LY=W_Y1(G)+40+(NCO-1)*16
- 22190 '項目
- 22192 LX=W_X1(G)+30:LC=1:CBC=5:LL=16:LG=1:LP=1:LINS=1:DSPC=0:CN=1
- 22194 GOSUB *CNSTIN
- 22200 '金額
- 22202 LX=W_X1(G)+132:LC=7:CBC=8:LL=10:LG=1:LP=1:LINS=0:DSPC=6:CN=2
- 22204 GOSUB *CNSTIN
- 22210 '日付
- 22212 LX=W_X1(G)+200:LC=5:CBC=1:LL=2:LP=1:LG=1:LINS=0:DSPC=4:CN=3
- 22214 GOSUB *CNSTIN:CODY=VAL(COX$(NCO,3))
- 22220 IF CODY>31 OR CODY<1 THEN 22210
- 22230 RETURN
- 22240 *CNSTIN
- 22250 L$(1)=COX$(NCO,CN):GOSUB *LKEYIN:COX$(NCO,CN)=L$(1)
- 22255 LINE(LX,LY)-(LX+6*LL,LY+12),PSET,%CBC,BF
- 22260 SYMBOL(LX,LY),COX$(NCO,CN),.75!,.75!,DSPC
- 22265 RETURN
- 22269 '
- 22270 *定額項目上切換え
- 22275 COI(NCO)=COI(NCO)-1:IF COI(NCO)<0 THEN COI(NCO)=15
- 22280 GOTO *COIDISP
- 22285 *定額項目下切換え
- 22290 COI(NCO)=COI(NCO)+1:IF COI(NCO)>15 THEN COI(NCO)=0
- 22295 GOTO *COIDISP
- 22300 *COIDISP
- 22305 GOSUB *CNVCOCN:GOSUB *CNVCONC:Y=W_Y1(G)+40+(NCO-1)*16
- 22310 LINE(W_X1(G)+222,Y)-(W_X1(G)+222+6*8,Y+12),PSET,%0,BF
- 22315 SYMBOL(W_X1(G)+222,Y),COI$(NCO),.75!,.75!,7
- 22320 MESOF=1:RETURN
- 22325 '
- 22330 *定額編集枠表示
- 22332 MOUSE 1,,,0
- 22333 LINE(552,356)-(558,357),PSET,6,BF
- 22335 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 22345 LOAD@ TIFDRV$+"\HK2INcst.TIF",(W_X1(G),W_Y1(G))
- 22346 MOUSE 1,,,1
- 22350 RETURN
- 22355 *定額編集枠消去
- 22360 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 22365 LINE(552,356)-(558,357),PSET,0,BF
- 22370 RETURN
- 22375 '
- 22380 *定額支出表示
- 22385 FOR NCO=1 TO 10:Y=W_Y1(G)+40+(NCO-1)*16
- 22390 LINE(W_X1(G)+ 30,Y)-(W_X1(G)+28+6*16,Y+12),PSET,%5,BF
- 22391 SYMBOL(W_X1(G)+ 30,Y),COX$(NCO,1),.75!,.75!,0
- 22395 LINE(W_X1(G)+132,Y)-(W_X1(G)+132+6*10,Y+12),PSET,%8,BF
- 22396 SYMBOL(W_X1(G)+132,Y),COX$(NCO,2),.75!,.75!,6
- 22400 LINE(W_X1(G)+200,Y)-(W_X1(G)+200+6*2,Y+12),PSET,%1,BF
- 22401 SYMBOL(W_X1(G)+200,Y),COX$(NCO,3),.75!,.75!,4
- 22405 GOSUB *CNVCONC
- 22410 LINE(W_X1(G)+222,Y)-(W_X1(G)+222+6*6,Y+12),PSET,%0,BF
- 22411 SYMBOL(W_X1(G)+222,Y),COI$(NCO),.75!,.75!,7
- 22415 NEXT NCO
- 22420 RETURN
- 22425 '
- 22430 *CNVCONC
- 22435 COI(NCO)=VAL(COX$(NCO,4))
- 22440 IF COI(NCO)=0 THEN COI$(NCO)=" ---- " :RETURN
- 22445 COI$(NCO)=CFI$(COI(NCO)) :RETURN
- 22450 *CNVCOCN
- 22455 COX$(NCO,4)=RIGHT$(STR$(100+COI(NCO)),2):RETURN
- 22460 *CNVCOND
- 22465 CODY=VAL(COX$(NCO,3)) :RETURN
- 22470 *CNVCODN
- 22475 A$=STR$(100+VAL(COX$(NCO,3)))
- 22480 COX$(NCO,3)=RIGHT$(A$,2) :RETURN
- 22485 *CNVCOYN
- 22490 A$=SPACE$(10)+STR$(VAL(COX$(NCO,2)))
- 22495 COX$(NCO,2)=RIGHT$(A$,10) :RETURN
- 22500 '
- 22505 *定額項目転記
- 22510 DYX=DY:DYX$=DY$:SWNOW=SWNO
- 22512 X1=W_X1(G)+220:Y1=W_Y1(G)+39+16*(NCO-1)
- 22513 X2=W_X1(G)+273:Y2=W_Y1(G)+53+16*(NCO-1)
- 22515 LINE(X1,Y1)-(X2,Y2),XOR,1,BF
- 22520 IF COI(NCO)=0 THEN MESN=28:GOSUB *MESDSP:GOTO 22555
- 22525 CPYP=COI(NCO)
- 22530 MESN=26:GOSUB *MESDSP
- 22535 COW$=COX$(NCO,1):GOSUB *単語抽出
- 22540 RDY=VAL(COX$(NCO,3)):GOSUB *HKDGET
- 22545 IF INSTR(DRM$(CPYP),COW$)=0 THEN 22560
- 22550 MESN=27:GOSUB *MESDSP
- 22555 PLAY "v8o7l16e":WAIT SWAIT\1+1:GOTO 22585
- 22560 '転記
- 22562 PLAY "v8o6l16ec"
- 22565 MID$(DRM$(CPYP),52-LEN(COW$)+1,LEN(COW$))=COW$
- 22570 DYN#(CPYP)=DYN#(CPYP)+VAL(COX$(NCO,2))
- 22575 DYN$(CPYP)=RIGHT$(SPACE$(10)+STR$(DYN#(CPYP)),10)
- 22580 DY=VAL(COX$(NCO,3)):GOSUB *家計簿データ保存
- 22585 LINE(X1,Y1)-(X2,Y2),XOR,1,BF
- 22590 SWNO=SWNOW:DY=DYX:DY$=DYX$
- 22595 RETURN
- 22600 '
- 22605 *単語抽出
- 22610 SPP1=INSTR(COW$," "):SPP2=INSTR(COW$," ")
- 22615 IF (SPP1=0) AND (SPP2=0) THEN SPP=0 :GOTO 22635
- 22620 IF SPP1=0 THEN SPP=SPP2:GOTO 22635
- 22625 IF SPP2=0 THEN SPP=SPP1:GOTO 22635
- 22630 IF SPP1=<SPP2 THEN SPP=SPP1 ELSE SPP=SPP2
- 22635 IF SPP=1 THEN COW$="" :GOTO 22650
- 22640 IF SPP=0 THEN COW$=COW$ :GOTO 22650
- 22645 COW$=LEFT$(COW$,SPP-1)
- 22650 RETURN
- 22655 '
- 23000 '//////////////////////////////////////////////////////
- 23010 ' 累計表 v1.3
- 23011 ' ドラッグ対応 累計表 v1.4 1995.05
- 23020 *累計表表示
- 23025 MCN=2:GOSUB *MCDSET
- 23030 G=6:SWNOX=SWNO
- 23050 GOSUB *累計表枠表示
- 23055 GOSUB *月間総計ファイル作成
- 23056 GOSUB *HKTFGET
- 23060 GOSUB *累計表データ表示
- 23065 MCN=1:GOSUB *MCDSET
- 23070 MESN=21:GOSUB *MESDSP
- 23090 G=6:GOSUB *MCSELECT'ボタン選択:'swpass=1 cut
- 23095 IF SWNO<0 THEN SWNO=1
- 23100 IF SWNO=0 THEN 23090
- 23110 ON SWNO GOTO *SRU1,*SRU2
- 23120 *SRU1:'取消
- 23130 G=6:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 23140 GOSUB *累計表枠消去
- 23150 'GOSUB *データ表示
- 23160 SWNO=SWNOX
- 23170 RETURN
- 23180 *SRU2:'drag
- 23190 GOSUB *MCDRAG 'ドラッグ
- 23200 GOTO 23090
- 23260 '
- 23300 *累計額計算:' HKDCAL の後に実行 24400-24800
- 23310 '総累計:'----------------------------------------
- 23320 TRGD#=VAL(YR$+MN$)*100#+RDY:TRG#=VAL(SSYMD$)
- 23330 IF TRGD#=TRG# THEN CLRQ=0 ELSE CLRQ=1
- 23340 IF TRGD#<TRG# THEN 23590
- 23350 FOR II=1 TO 15:'---各項目
- 23360 DYT#(II)=DYT#(II)*CLRQ+(DYN#(II)-DYNX#(II)*CLRQ)
- 23370 DYT$(II)=RIGHT$(SPACE$(10)+STR$(DYT#(II)),10)
- 23380 NEXT II
- 23400 FOR II=1 TO 15:DYNX#(II)=DYN#(II) :NEXT II
- 23420 GOSUB *累計表合計計算
- 23430 RETURN
- 23440 '
- 23490 '------------------------------------------------
- 23500 *累計諸演算
- 23505 AVRN=IR-RSS+1
- 23510 FOR II=1 TO 15
- 23520 IF AVRN=0 THEN DYA#(II)=0:GOTO 23525
- 23521 DYA#(II)=INT(DYT#(II)/AVRN)
- 23525 IF DYA#(II)=0 THEN DYR#(II)=0:GOTO 23530
- 23526 DYR#(II)=(DYM#(II)/DYA#(II))*100
- 23530 DYA$(II)=RIGHT$(SPACE$(11)+STR$(DYA#(II)),10)
- 23535 CVNR#=DYR#(II):GOSUB *小数点変換:DYR$(II)=CVNO$
- 23540 NEXT II
- 23550 IF AVRN=0 THEN TAAI#=0:TAAO#=0:GOTO 23560
- 23551 TAAI#=INT(TTAI#/AVRN):TAAO#=INT(TTAO#/AVRN):'月平均収入・支出
- 23560 IF TAAI#=0 THEN TRAI#=0:GOTO 23565
- 23561 TRAI#=(TMAI#/TAAI#)*100 :'平月比収入
- 23565 IF TAAO#=0 THEN TRAO#=0:GOTO 23570
- 23566 TRAO#=(TMAO#/TAAO#)*100 :'平月比支出
- 23570 TAAI$=RIGHT$(SPACE$(10)+STR$(TAAI#),10)
- 23575 TAAO$=RIGHT$(SPACE$(10)+STR$(TAAO#),10)
- 23580 CVNR#=TRAI#:GOSUB *小数点変換:TRAI$=CVNO$
- 23585 CVNR#=TRAO#:GOSUB *小数点変換:TRAO$=CVNO$
- 23590 RETURN
- 23595 '
- 23600 *小数点変換
- 23605 CVNR1#=INT(CVNR#)
- 23610 CVNR1$=RIGHT$(SPACE$(8)+STR$(CVNR1#),8)+"."
- 23620 CVNR2#=INT((CVNR#-CVNR1#)*100)
- 23630 CVNR2$=RIGHT$(STR$(100+CVNR2#),2)
- 23640 CVNO$=RIGHT$(CVNR1$+CVNR2$,10)
- 23650 RETURN
- 23660 '
- 23700 *累計表枠表示
- 23705 MOUSE 1,,,0
- 23710 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 23720 LINE(552,341)-(558,342),PSET,6,BF
- 23730 LOAD@ TIFDRV$+"\HK2INtt.TIF",(W_X1(G),W_Y1(G))
- 23740 MOUSE 1,,,1
- 23750 FOR II=1 TO 15
- 23760 A$=CFI$(II):IF II>3 THEN YY=14 ELSE YY=0
- 23770 SYMBOL(W_X1(G)+27,W_Y1(G)+54+YY+(II-1)*14),A$,.75!,.75!,0
- 23780 NEXT II
- 23890 RETURN
- 23900 '
- 23910 *累計表枠消去
- 23920 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 23925 LINE(552,341)-(558,342),PSET,0,BF
- 23930 RETURN
- 23940 '
- 24000 *起算日表示
- 24010 A$=RIGHT$(SDAY$,2)
- 24020 SYMBOL(573,396),A$,.75!,.75!,%2
- 24030 A$=LEFT$(SSYMD$,4)+"."+MID$(SSYMD$,5,2)+"."+RIGHT$(SSYMD$,2)
- 24040 SYMBOL(573,434),A$,.75!,.75!,%2
- 24050 RETURN
- 24060 '
- 24100 *累計表データ表示
- 24105 GOSUB *累計表合計計算
- 24106 GOSUB *累計諸演算
- 24110 FOR II=1 TO 15
- 24120 IF II>3 THEN YY=14 ELSE YY=0
- 24125 Y=W_Y1(G)+54+YY+(II-1)*14
- 24130 SYMBOL(W_X1(G)+ 78,Y),DYM$(II),.75!,.75!,0
- 24135 SYMBOL(W_X1(G)+149,Y),DYT$(II),.75!,.75!,0
- 24140 SYMBOL(W_X1(G)+221,Y),DYA$(II),.75!,.75!,0
- 24145 SYMBOL(W_X1(G)+294,Y),DYR$(II),.75!,.75!,0
- 24150 NEXT II
- 24160 Y=W_Y1(G)+54+(4-1)*14
- 24210 SYMBOL(W_X1(G)+ 78,Y),TMAI$,.75!,.75!,1
- 24212 SYMBOL(W_X1(G)+149,Y),TTAI$,.75!,.75!,1
- 24214 SYMBOL(W_X1(G)+221,Y),TAAI$,.75!,.75!,1
- 24216 SYMBOL(W_X1(G)+294,Y),TRAI$,.75!,.75!,1
- 24220 Y=W_Y1(G)+54+14+(16-1)*14
- 24230 SYMBOL(W_X1(G)+ 78,Y),TMAO$,.75!,.75!,2
- 24232 SYMBOL(W_X1(G)+149,Y),TTAO$,.75!,.75!,2
- 24234 SYMBOL(W_X1(G)+221,Y),TAAO$,.75!,.75!,2
- 24236 SYMBOL(W_X1(G)+294,Y),TRAO$,.75!,.75!,2
- 24240 Y=W_Y1(G)+54+20+(17-1)*14
- 24250 SYMBOL(W_X1(G)+ 78,Y),TMR$,.75!,.75!,0
- 24260 SYMBOL(W_X1(G)+149,Y),TTR$,.75!,.75!,0
- 24270 RETURN
- 24280 '
- 24300 *累計表合計計算
- 24310 TTAI#=0:TMAI#=0:TTAO#=0:TMAO#=0
- 24320 FOR II=1 TO 3
- 24330 TMAI#=TMAI#+VAL(DYM$(II)):TTAI#=TTAI#+VAL(DYT$(II))
- 24340 NEXT II
- 24350 TMAI$=RIGHT$(SPACE$(10)+STR$(TMAI#),10) :'月間収入合計
- 24360 TTAI$=RIGHT$(SPACE$(10)+STR$(TTAI#),10) :'累積収入合計
- 24370 FOR II=4 TO 15
- 24380 TMAO#=TMAO#+VAL(DYM$(II)):TTAO#=TTAO#+VAL(DYT$(II))
- 24390 NEXT II
- 24400 TMAO$=RIGHT$(SPACE$(10)+STR$(TMAO#),10) :'月間支出合計
- 24410 TTAO$=RIGHT$(SPACE$(10)+STR$(TTAO#),10) :'累積支出合計
- 24420 TMR$=RIGHT$(SPACE$(10)+STR$(TMAI#-TMAO#),10):'月間残高
- 24430 TTR$=RIGHT$(SPACE$(10)+STR$(TTAI#-TTAO#),10):'累積残高
- 24440 RETURN
- 24450 '
- 24500 '///////////////////////////////////////////////////////////
- 24510 ' 総計再計算
- 24520 *月間総計ファイル作成
- 24530 DYX=DY :MNX=MN :YRX=YR :SWNOXX=SWNO:IYMX$=IYM$
- 24535 DYX$=DY$:MNX$=MN$:YRX$=YR$
- 24540 ENDF=0:PCDAYC=0
- 24550 IF DY>=SDAY THEN 24580
- 24560 YDEF=0:MDEF=-1:DDEF=0:GOSUB *年月日変更
- 24562 IYM$=YR$+MN$:GOSUB *HKISRC
- 24566 IF FIDX=1 THEN 24580
- 24568 YDEF=0:MDEF=+1:DDEF=0:GOSUB *年月日変更
- 24570 IYM$=YR$+MN$ :ENDF=1
- 24580 MESN=23:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 24590 GOSUB *HKTFGET
- 24600 PCCD=1:PCMES$=YR$+"年"+MN$+"月現在 累計額演算中":GOSUB *PROCD
- 24620 GOSUB *TRG2CLR
- 24630 IF ENDF=1 THEN 24690
- 24660 '---------- SDAY TO 31
- 24661 FOR RDY=SDAY TO 31
- 24662 LINE(68*8,465)-(79*8,465+12),PSET,0,BF
- 24664 SYMBOL(68*8,465),IYM$+"/"+RIGHT$(" "+STR$(RDY),2),.75!,.75!,4
- 24666 GOSUB *HKDGET:PCDAYC=PCDAYC+1
- 24668 GOSUB *累計額演算
- 24669 PCCD=3:PCCUR=PCDAYC:PCMAX=31:PCINT=1:GOSUB *PROCD
- 24670 NEXT RDY :'----------
- 24680 YDEF=0:MDEF=+1:DDEF=0:GOSUB *年月日変更
- 24682 IYM$=YR$+MN$
- 24684 GOSUB *HKISRC
- 24686 IF FIDX=0 THEN 24740
- 24688 IF SDAY=1 THEN 24740
- 24690 '---------- 1 TO SDAY-1
- 24691 FOR RDY=1 TO SDAY-1
- 24692 LINE(68*8,465)-(79*8,465+12),PSET,0,BF
- 24694 SYMBOL(68*8,465),IYM$+"/"+RIGHT$(" "+STR$(RDY),2),.75!,.75!,4
- 24696 GOSUB *HKDGET
- 24698 GOSUB *累計額演算:PCDAYC=PCDAYC+1
- 24699 PCCD=3:PCCUR=PCDAYC:PCMAX=31:PCINT=1:GOSUB *PROCD
- 24700 NEXT RDY:'------------
- 24740 GOSUB *累計額文字変換
- 24750 GOSUB *HKTFPUT:ENDF=0
- 24760 MESN=14:GOSUB *SNDMSG
- 24765 PCCD=2:GOSUB *PROCD
- 24770 DY=DYX :MN=MNX :YR=YRX :SWNO=SWNOXX:IYM$=IYMX$
- 24775 DY$=DYX$:MN$=MNX$:YR$=YRX$
- 24780 RETURN
- 24790 '
- 24800 *累計額文字変換
- 24810 FOR II=1 TO 15
- 24812 DYM$(II)=RIGHT$(SPACE$(10)+STR$(DYM#(II)),10)
- 24814 NEXT II
- 24820 RETURN
- 24830 '
- 24840 *累計額演算
- 24850 FOR II=1 TO 15: DYM#(II)=DYM#(II)+VAL(DYN$(II)) :NEXT II
- 24870 RETURN
- 24880 '
- 24890 *TRG2CLR
- 24900 FOR II=1 TO 15: DYM#(II)=0:NEXT II
- 24920 RETURN
- 24970 '
- 24980 '///////////////////////////////////////////////////////////
- 24990 ' 辞書入力 v1.3
- 25000 *辞書入力
- 25005 G=3:CBC=0 :'文字背景色
- 25010 LXDIC=W_X1(1)+202:LYDIC=W_Y1(1)+144+16*(IPNO-1)
- 25020 IF IPNO>3 THEN LYDIC=LYDIC+24
- 25040 GOSUB *辞書データ枠表示
- 25050 A$=DRM$(IPNO)
- 25060 SPS=INSTR(A$," ")
- 25070 IF SPS=1 THEN LMG$="":GOTO 25100
- 25080 IF SPS>50 OR SPS=0 THEN LMG$=A$:GOTO 25100
- 25090 LMG$=LEFT$(A$,SPS)
- 25100 LX=LXDIC:LY=LYDIC:LC=6:SYMBOL(LX,LY),LMG$,.75!,.75!,%LC
- 25110 WSP=1
- 25120 GOSUB *辞書データ表示
- 25130 MESN=17:GOSUB *MESDSP
- 25140 G=3:GOSUB *MCSELECT'ボタン選択 :'swpass=1 cut
- 25145 IF SWNO<0 THEN SWNO=1
- 25146 IF SWNO=22 THEN GOSUB *MCDRAG :GOTO 25140
- 25150 IF SWNO>5 THEN *WSEL
- 25160 ON SWNO GOTO *WS3,*WS2,*WS1,*WS5,*WS4
- 25170 GOTO 25140
- 25180 '
- 25190 *WS4:'--- PAGE INC
- 25200 G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 25210 WSP=WSP+16
- 25220 IF WSP>WRDM(IPNO) THEN WSP=WSP-16:GOTO 25240
- 25230 GOSUB *辞書データ表示
- 25240 G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 25250 GOTO 25130
- 25260 *WS5:'--- PAGE DEC
- 25270 G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 25280 WSP=WSP-16
- 25290 IF WSP<1 THEN WSP=WSP+16:GOTO 25310
- 25300 GOSUB *辞書データ表示
- 25310 G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 25320 GOTO 25130
- 25330 *WS3:'--- 取消
- 25340 ENDF=1:LMG$=DRM$(IPNO)
- 25360 GOTO 25390
- 25370 *WS1:'--- 入力
- 25380 ENDF=0
- 25390 IF RIGHT$(LMG$,1)="・" THEN LMG$=LEFT$(LMG$,LEN(LMG$)-1)
- 25400 DRM$(IPNO)=LEFT$(LMG$+SPACE$(52),52)
- 25420 LX=LXDIC:LY=LYDIC:LC=6
- 25430 SYMBOL(LX,LY),DRM$(IPNO),.75!,.75!,%LC
- 25450 G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 25460 G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 25470 G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 25480 GOSUB *辞書データ枠消去
- 25490 RETURN
- 25500 *WS2:'--- 消去
- 25510 G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 25520 LMG$=""
- 25530 LX=LXDIC:LY=LYDIC
- 25540 LINE(LX,LY)-(LX+6*52,LY+11),PSET,%CBC,BF
- 25550 G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 25560 GOTO 25130
- 25570 *WSEL'--------------
- 25580 G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 25590 WSELN=WSP+(SWNO-6)
- 25600 IF WSELN>WRDM(IPNO) THEN 25680
- 25610 IF KLEFT$(WRD$(IPNO,WSELN),1)="★" THEN 25680
- 25620 LMG$=LMG$+WRD$(IPNO,WSELN)+"・"
- 25630 IF LEN(LMG$)<=52 THEN 25670
- 25640 LMG$=LEFT$(LMG$,53):CHT=KTYPE(KRIGHT$(LMG$,1),1)
- 25650 IF CHT=1 THEN LMG$=LEFT$(LMG$,51): GOTO 25670
- 25660 LMG$=LEFT$(LMG$,52)
- 25670 LX=LXDIC:LY=LYDIC:LC=6:SYMBOL(LX,LY),LMG$,.75!,.75!,%LC
- 25680 G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 25690 GOTO 25130
- 25700 '
- 25800 *辞書データ枠表示
- 25805 MOUSE 1,,,0
- 25810 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 25820 LOAD@ TIFDRV$+"\hk2DICD.TIF",(W_X1(G),W_Y1(G))
- 25830 MOUSE 1,,,1
- 25840 SYMBOL(W_X1(G)+22,W_Y1(G)+6),CFI$(IPNO),.8!,.75!,%1,,,1
- 25860 RETURN
- 25870 *辞書データ枠消去
- 25880 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 25900 RETURN
- 25910 '
- 26000 *辞書入力スイッチ
- 26010 IF DICIF=0 THEN DICSC=0 ELSE DICSC=4
- 26020 LINE(552,326)-(558,327),PSET,DICSC,BF
- 26030 ' WAIT SWAIT\1+1
- 26040 RETURN
- 26050 '
- 26100 *辞書データ表示
- 26130 WPAGE=INT((WSP-1)/16)+1
- 26140 MPAGE=INT((WRDM(IPNO)-1)/16)+1
- 26150 WPG$=RIGHT$(STR$(WPAGE),1)+"/"+RIGHT$(STR$(MPAGE),1)
- 26160 LINE(W_X1(G)+110,W_Y1(G)+6)-(W_X1(G)+120,W_Y1(G)+16),PSET,0,BF
- 26165 SYMBOL(W_X1(G)+110,W_Y1(G)+6),WPG$,.75!,.75!,4,,,,2
- 26170 FOR II=0 TO 15
- 26172 LINE(W_X1(G)+10,W_Y1(G)+56+14*II)-(W_X1(G)+100,W_Y1(G)+67+14*II),PSET,0,BF
- 26174 NEXT II
- 26180 FOR II=0 TO 15
- 26185 IF (WSP+II)>WRDM(IPNO) THEN 26220
- 26190 WRDX$=LEFT$(WRD$(IPNO,WSP+II),14)
- 26200 IF KLEFT$(WRDX$,1)="★" THEN WRDDC=4 ELSE WRDDC=7
- 26215 SYMBOL(W_X1(G)+10,W_Y1(G)+56+14*II),WRDX$,.75!,.75!,WRDDC
- 26220 NEXT II
- 26230 RETURN
- 26240 '
- 27100 '-----------------------------------------------------------
- 27110 *家計簿データ保存:' v1.4
- 27115 IF COMODE=1 THEN 27135
- 27120 G=1:B=BSAVE:BST(G,B)=1:GOSUB *BTN_ONOFF
- 27130 MESN=13:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 27135 GOSUB *HKISRC :'v1.4 月間総計計算後RIがずれるため追加
- 27140 RDY=DY:GOSUB *HKDPUT
- 27150 MID$(IMAK$,DY,1)="*"
- 27155 MID$(IMAK$,32,1)=" "
- 27165 GOSUB *HKIPUT:GOSUB *HKTFPUT
- 27170 IPF=0
- 27172 IF COMODE=1 THEN 27180
- 27175 G=1:B=BSAVE:BST(G,B)=0:GOSUB *BTN_ONOFF
- 27180 RETURN
- 27185 '
- 27200 *電卓入力スイッチ
- 27210 IF CALCF=0 THEN CALCC=0 ELSE CALCC=4
- 27220 LINE(552,311)-(558,312),PSET,CALCC,BF
- 27230 ' WAIT SWAIT\1+1
- 27240 RETURN
- 27250 '
- 29900 '------------------------------------------------------------------
- 30000 '
- 30100 *ABOUT表示
- 30105 X1A=146:Y1A=150:XPA=326:YPA=100
- 30106 MOUSE 1,,,0
- 30110 GET@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 30120 LOAD@ TIFDRV$+"\hk2logo.tif",(X1A,Y1A)
- 30125 MOUSE 1,,,1
- 30130 CMES$=ABOUT$:GOSUB *確認
- 30150 PUT@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 30160 RETURN
- 30170 '
- 30500 *数字漢字変換
- 30505 NBK$=""
- 30510 FOR INBK=1 TO NBN
- 30512 NBAX$=MID$(NBA$,INBK,1)
- 30514 IF NBAX$=" " THEN NBK$=NBK$+" ":GOTO 30530
- 30520 NBK$=NBK$+KNJ$(&H2330+VAL(NBAX$))
- 30530 NEXT INBK
- 30540 RETURN
- 30580 '
- 31000 *FADEOUT:CLS 1:CONSOLE 0,24,0
- 31010 FOR II=0 TO 15
- 31020 PALETTE II,[16*II,16*II,16*II]
- 31030 NEXT II
- 31040 FOR II=0 TO 255 STEP 5
- 31050 FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
- 31054 PALETTE JJ,[KK,KK,KK]
- 31056 NEXT JJ
- 31060 NEXT II
- 31070 RETURN
- 31080 '
- 31200 *確認
- 31205 G=2:SWNOX=SWNO:MOUSE 1,,,0
- 31210 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 31220 LOAD@ TIFDRV$+"\CAUTION2.TIF",(W_X1(G),W_Y1(G))
- 31225 PLAY "o6l4ce":MOUSE 1,,,1
- 31230 FOR II=1 TO 4
- 31232 SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,6
- 31234 WAIT SWAIT\10+1
- 31236 LINE(W_X1(G)+102,W_Y1(G)+9)-(W_X1(G)+102+6*39,W_Y1(G)+9+12),PSET,%9,BF
- 31237 WAIT SWAIT\10+1
- 31238 NEXT II
- 31239 SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,7
- 31240 MESN=19:GOSUB *SNDMSG:'28chr
- 31241 G=2:GOSUB *MCSELECT'ボタン選択
- 31242 IF SWNO<0 THEN SWNO=2
- 31243 IF SWNO=3 THEN GOSUB *MCDRAG:GOTO 31241
- 31244 IF SWNO=0 THEN 31241
- 31245 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 31260 WAIT SWAIT\5+1
- 31270 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 31272 CAUNO=SWNO:SWNO=SWNOX
- 31275 RETURN
- 31280 '
- 31700 *項目検索
- 31705 Y3=84:Y4=118:ITMSW=0
- 31710 X1=124:Y1=142:X2=518:XP=215:Y2=214:YP=16
- 31720 IF X_M<X1 OR X_M>X2 THEN RETURN
- 31722 IF (Y_M>Y3) AND (Y_M<Y4) THEN ITMN=0:GOTO 31760
- 31725 IF X_M<XP THEN ITMK=1 ELSE ITMK=2
- 31730 IF Y_M<Y1 OR Y_M>Y1+YP*3 THEN 31735
- 31732 ITMN=(Y_M-Y1)\YP+1 :GOTO 31760
- 31735 IF Y_M<Y2 OR Y_M>Y2+YP*12 THEN RETURN
- 31737 ITMN=(Y_M-Y2)\YP+4
- 31760 ITMSW=1:PLAY "@21v2o5l64a@30"
- 31770 RETURN
- 31780 '
- 31800 *カレンダー検索
- 31810 X0=551:Y0=90:XP=12:YP=10:CLDSW=0
- 31820 IF X_M<X0 OR X_M>X0+XP*7 THEN RETURN
- 31830 IF Y_M<Y0 OR Y_M>Y0+YP*6 THEN RETURN
- 31840 CLX=(X_M-X0)\XP:CLY=(Y_M-Y0)\YP
- 31850 SELDAY=CLM(CLX,CLY)
- 31860 IF SELDAY<>0 THEN CLDSW=1:PLAY "@21v2o5l64a@30"
- 31870 RETURN
- 31880 '
- 32000 '
- 32010 *カレンダー表示
- 32020 X0=551:Y0=90:XP=12:YP=10:DYX=DY
- 32030 FOR CLX=0 TO 6:FOR CLY=0 TO 5:CLM(CLX,CLY)=0:NEXT:NEXT
- 32050 DY=1:GOSUB *WEEKN:WKMCLD=WK
- 32060 LINE(X0-1,Y0-1)-(X0-1+XP*7-1,Y0+YP*6-2),PSET,%5,BF
- 32070 FOR IDSP=0 TO MNDN-1:COLOR 7,7
- 32080 CLDD$=RIGHT$(" "+STR$(IDSP+1),2)
- 32090 CLX=(WK+IDSP) MOD 7
- 32100 CLY=INT((WK+IDSP)/7)
- 32110 CLM(CLX,CLY)=IDSP+1
- 32120 CLDC=1:CLDX=X0+CLX*XP:CLDY=Y0+CLY*YP
- 32130 IF CLX=0 THEN CLDC=10
- 32140 IF CLX=6 THEN CLDC=9
- 32150 GOSUB *祝日検出
- 32180 SYMBOL(CLDX,CLDY),CLDD$,.5!,.5!,%CLDC,,,,1
- 32230 NEXT IDSP
- 32240 DY=DYX
- 32250 RETURN
- 32260 '
- 32270 *行事表示
- 32280 EVENT$=EVDT$(MN,DY)
- 32290 LINE(310,37)-(307+6*32,37+11),PSET,%8,BF
- 32295 IF LEFT$(EVENT$,6)="(祝日)" THEN CL=11:GOTO 32300
- 32296 IF LEFT$(EVENT$,2)="★" THEN CL=12:GOTO 32300
- 32297 CL=15
- 32300 SYMBOL(310,37),EVENT$,.75!,.75!,%CL
- 32310 RETURN
- 32320 '
- 32330 *祝日検出
- 32340 HOLDY=0:EVEX=0
- 32350 CLEV$=EVDT$(MN,IDSP+1)
- 32360 IF 休日1$="" THEN 32390
- 32370 IF CLEV$<>SPACE$(40) THEN EVEX=1
- 32380 IF INSTR(CLEV$,休日1$)<>0 THEN CLDC=10:HOLDY=(1 AND 代休1)
- 32390 IF 休日2$="" THEN 32410
- 32400 IF INSTR(CLEV$,休日2$)<>0 THEN CLDC=10:HOLDY=(1 AND 代休2)
- 32410 IF CLX=1 AND HOLDYX=1 THEN CLDC=10
- 32420 HOLDYX=HOLDY
- 32430 RETURN
- 32440 '
- 32450 *EVOPN:'行事データファイルオープン
- 32460 DRV$=LEFT$(PRGDRV$,2)
- 32470 IF LEN(PRGDRV$)=3 THEN DRV$=LEFT$(PRGDRV$,2):PATH$="":GOTO 32490
- 32480 PATH$=RIGHT$(PRGDRV$,LEN(PRGDRV$)-2)
- 32490 FLN$=DRV$+"(40)"+PATH$+"\EVENT.DAT"
- 32500 OPEN "R",#1,FLN$
- 32510 FIELD #1,40 AS EV$
- 32520 RETURN
- 32530 '
- 32540 *EVGET:'行事データファイル読み込み
- 32550 GOSUB *EVOPN:R=1
- 32560 FOR II=1 TO 12:FOR JJ=1 TO 32
- 32570 GET #1,R
- 32580 EVDT$(II,JJ)=EV$
- 32590 R=R+1
- 32600 NEXT JJ:NEXT II
- 32610 CLOSE
- 32620 RETURN
- 32630 '
- 32700 *日カーソル表示
- 32710 XM0=550:XMP=12:YM0=89:YMP=10
- 32715 CLX=(WKMCLD+(DY-1)) MOD 7
- 32716 CLY=INT((WKMCLD+(DY-1))/7)
- 32730 GOSUB *日カーソル消去
- 32740 XM1=XM0+CLX*XMP:YM1=YM0+CLY*YMP
- 32750 XM2=XM1+10 :YM2=YM1+9
- 32770 LINE(XM1,YM1)-(XM2,YM2),PSET,4,B
- 32780 CLXX=CLX:CLYX=CLY
- 32790 RETURN
- 32800 '
- 32810 *日カーソル消去
- 32830 XM1=XM0+CLXX*XMP:YM1=YM0+CLYX*YMP
- 32840 XM2=XM1+10 :YM2=YM1+9
- 32860 LINE(XM1,YM1)-(XM2,YM2),PSET,%5,B
- 32870 RETURN
- 32880 '
- 33000 *PROCD:'処理状況表示
- 33010 ON PCCD GOTO *PC01,*PC02,*PC03
- 33020 *PC01
- 33030 GET@A(150,200)-(483,256),HLPC#
- 33040 MOUSE 1,,,0:LOAD@ TIFDRV$+"\HK2PROC.TIF",(150,200):MOUSE 1,,,1
- 33050 SYMBOL(226,204),PCMES$,.75!,.75!,0
- 33060 RETURN
- 33070 *PC02
- 33080 PUT@A(150,200)-(483,256),HLPC#
- 33090 RETURN
- 33100 *PC03:' pcmax,pccur,pcint
- 33110 XP0=157:YP0=240:XPM=477:YPM=250
- 33120 IF (PCCUR MOD PCINT)<>0 THEN RETURN
- 33130 XP=XP0+INT((XPM-XP0)*(PCCUR/PCMAX))
- 33140 LINE(XP0,YP0)-(XP,YPM),PSET,1,BF
- 33150 RETURN
- 33160 '
- 34000 *PATHMAKE:'---------- パス作成 -------------------------------
- 34005 DRV$=LEFT$(XDRV$,2)
- 34010 IF LEN(XDRV$)=3 THEN DRV$=LEFT$(XDRV$,2):PATH$="":GOTO 34020
- 34015 PATH$=RIGHT$(XDRV$,LEN(XDRV$)-2)
- 34020 RETURN
- 34030 '
- 35000 *HKIOPN:'---------- インデックスファイルオープン
- 35005 XDRV$=DATDRV$:GOSUB *PATHMAKE
- 35020 FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
- 35030 OPEN "R",#2,FLN$
- 35040 FIELD #2,6 AS I$(1),32 AS I$(2)
- 35050 IR=LOF(2)
- 35060 RETURN
- 35070 '
- 35100 *HKDOPN:'---------- 家計簿データファイルオープン
- 35105 XDRV$=DATDRV$:GOSUB *PATHMAKE
- 35120 FLN$=DRV$+"(1120)"+PATH$+"\HL"+IYM$+".DAT"
- 35130 OPEN "R",#1,FLN$
- 35140 FIELD #1,128 AS D$(1),10*16 AS D$(2),52*4 AS D$(3),52*4 AS D$(4),52*4 AS D$(5),52*4 AS D$(6)
- 35150 AR=LOF(1)
- 35160 RETURN
- 35170 '
- 35200 *HKCFOPN:'---------- 定額ファイルオープン
- 35205 XDRV$=PRGDRV$:GOSUB *PATHMAKE
- 35220 FLN$=DRV$+"(32)"+PATH$+"\Hkconst.DAT"
- 35230 OPEN "R",#3,FLN$
- 35240 FIELD #3,16 AS CO$(1),10 AS CO$(2),2 AS CO$(3),2 AS CO$(4),2 AS CO$(5)
- 35260 RETURN
- 35270 '
- 35300 *HKTFOPN:'---------- 家計簿総計ファイルオープン
- 35305 XDRV$=PRGDRV$:GOSUB *PATHMAKE
- 35320 FLN$=DRV$+"(660)"+PATH$+"\HTOTAL.DAT"
- 35330 OPEN "R",#4,FLN$
- 35340 FIELD #4,10*15 AS DT$(1),10*15 AS DT$(2),10*18 AS DT$(3),10*18 AS DT$(4)
- 35360 ATR=LOF(4):RETURN
- 35370 ' ファイル構成
- 35371 ' 項目 1 | dyt$(1)|-| dyt$(15)| --総累計
- 35372 ' 2 | dym$(1)|-| dym$(15)| --月間累計
- 35373 ' 小分類 3 |sdyt$(1)|-|sdyt$(15)| 4|ttr$| 5|tdr$[date$] |
- 35374 ' 6 |sdym$(1)|-|sdym$(15)| 7|tmr$| 8|tor$[original date]|
- 35380 '
- 35400 *DTLOAD:'---------- 日付ジャンプデータファイル読込
- 35405 XDRV$=RAMDRV$:GOSUB *PATHMAKE
- 35420 FLN$=DRV$+PATH$+"\SRCjump.DAT"
- 35430 OPEN "I",#1,FLN$
- 35440 DT$=INPUT$(10,#1):CLOSE
- 35445 KILL DRV$+PATH$+"\SRCjump.DAT"
- 35450 RETURN
- 35460 '
- 35500 *DTCHK :'---------- 日付ジャンプファイルチェック
- 35505 XDRV$=RAMDRV$:GOSUB *PATHMAKE
- 35520 FLN$=DRV$+"(1)"+PATH$+"\SRCjump.DAT"
- 35530 OPEN "R",#1,FLN$:FIELD #1,1 AS X$
- 35540 SRCJ=LOF(1):CLOSE
- 35550 IF SRCJ=0 THEN KILL DRV$+PATH$+"\SRCjump.DAT"
- 35560 RETURN
- 35570 '
- 35900 *SHKISRC:'---------- インデックスファイル検索S
- 35910 FIDX=0
- 35920 GOSUB *HKIOPN
- 35930 GET #2,RR
- 35940 IYM$=I$(1):IMAK$=I$(2)
- 35950 CLOSE #2
- 35960 RETURN
- 35970 '
- 36000 *HKISRC:'---------- インデックスファイル検索
- 36005 FIDX=0
- 36010 GOSUB *HKIOPN
- 36020 FOR R=1 TO IR
- 36030 GET #2,R
- 36040 IF IYM$<>I$(1) THEN 36060
- 36050 IYM$=I$(1):IMAK$=I$(2):RI=R:R=IR+1:FIDX=1
- 36060 NEXT R
- 36062 GET #2,IR
- 36064 YRM=VAL(LEFT$(I$(1),4)):MNM=VAL(RIGHT$(I$(1),2))
- 36070 CLOSE #2
- 36080 RETURN
- 36090 '
- 36100 *HKIPUT:'---------- インデックスファイル書き込み
- 36110 GOSUB *HKIOPN
- 36120 LSET I$(1)=IYM$
- 36130 LSET I$(2)=IMAK$
- 36140 PUT #2,RI
- 36150 CLOSE #2
- 36160 RETURN
- 36170 '
- 36200 *HKDGET:'---------- 家計簿データ読み込み
- 36210 GOSUB *HKDOPN
- 36220 R=RDY
- 36230 GET #1,R:IF ASR<>0 THEN GET #3,R
- 36240 DEV$=D$(1)
- 36250 FOR II=1 TO 16:DYN$(II )=MID$(D$(2),(II-1)*10+1,10):NEXT II
- 36252 FOR II=1 TO 4:DRM$(II+ 0)=MID$(D$(3),(II-1)*52+1,52):NEXT II
- 36253 FOR II=1 TO 4:DRM$(II+ 4)=MID$(D$(4),(II-1)*52+1,52):NEXT II
- 36254 FOR II=1 TO 4:DRM$(II+ 8)=MID$(D$(5),(II-1)*52+1,52):NEXT II
- 36255 FOR II=1 TO 4:DRM$(II+12)=MID$(D$(6),(II-1)*52+1,52):NEXT II
- 36260 GOSUB *HKDCAL
- 36280 CLOSE #1
- 36290 RETURN
- 36295 '
- 36300 *HKDPUT:'---------- 家計簿データ書き込み
- 36310 GOSUB *HKDOPN
- 36320 R=RDY
- 36330 LSET D$(1)=DEV$
- 36340 DX$="":FOR II=1 TO 16:DX$=DX$+DYN$(II ):NEXT II:LSET D$(2)=DX$
- 36342 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 0):NEXT II:LSET D$(3)=DX$
- 36343 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 4):NEXT II:LSET D$(4)=DX$
- 36344 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 8):NEXT II:LSET D$(5)=DX$
- 36345 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+12):NEXT II:LSET D$(6)=DX$
- 36350 PUT #1,R
- 36360 CLOSE #1
- 36370 RETURN
- 36380 '
- 36400 *HKDCAL:'---------- 家計簿合計額計算
- 36410 FOR II=1 TO 16:DYN#(II)=VAL(DYN$(II)):NEXT II
- 36420 DIYN#=0:FOR II=1 TO 3 :DIYN#=DIYN#+DYN#(II):NEXT II
- 36430 DIYN$=RIGHT$(SPACE$(8)+STR$(DIYN#),8)
- 36440 DBYN#=0:FOR II=4 TO 7 :DBYN#=DBYN#+DYN#(II):NEXT II
- 36450 DBYN$=RIGHT$(SPACE$(8)+STR$(DBYN#),8)
- 36460 DOYN#=0:FOR II=4 TO 15:DOYN#=DOYN#+DYN#(II):NEXT II
- 36480 DOYN$=RIGHT$(SPACE$(8)+STR$(DOYN#),8)
- 36485 DION#=DIYN#-DOYN#:DION$=RIGHT$(SPACE$(8)+STR$(DION#),8)
- 36490 RETURN
- 36495 '
- 36500 *HKID:'---------- 先頭インデックスファイルチェック
- 36510 RR=1:GOSUB *SHKISRC
- 36520 SSYR$=LEFT$(IYM$,4):SSMN$=RIGHT$(IYM$,2)
- 36530 SSYR=VAL(SSYR$)
- 36540 SSMN=VAL(SSMN$)
- 36550 RETURN
- 36560 '
- 36700 *HKTFGET:'---------- 総計データ読み込み
- 36710 GOSUB *HKTFOPN
- 36730 GET #4,1
- 36750 FOR II=1 TO 15:DYT$(II)=MID$(DT$(1),(II-1)*10+1,10):NEXT II
- 36752 FOR II=1 TO 15:DYM$(II)=MID$(DT$(2),(II-1)*10+1,10):NEXT II
- 36755 TTR$=MID$(DT$(3),(17-1)*10+1,10)
- 36756 TMR$=MID$(DT$(4),(17-1)*10+1,10)
- 36760 TDR$=RIGHT$(DT$(3),10):TOR$=RIGHT$(DT$(4),10)
- 36770 GOSUB *HKTFMEM
- 36780 CLOSE #4
- 36790 RETURN
- 36795 '
- 36800 *HKTFPUT:'---------- 総計データ書き込み
- 36810 GOSUB *HKTFOPN
- 36850 DX$="":FOR II=1 TO 15:DX$=DX$+DYT$(II):NEXT II:LSET DT$(1)=DX$
- 36852 DX$="":FOR II=1 TO 15:DX$=DX$+DYM$(II):NEXT II:LSET DT$(2)=DX$
- 36854 DX1$=SPACE$(160):DX2$=SPACE$(160)
- 36860 LSET DT$(3)=DX1$+TTR$+DATE$+SPACE$(2)
- 36865 LSET DT$(4)=DX2$+TMR$+TOR$+SPACE$(2)
- 36870 PUT #4,1
- 36880 CLOSE #4
- 36890 RETURN
- 36895 '
- 36900 *HKTFMEM:'---------- 家計簿データ記憶
- 36910 FOR II=1 TO 15
- 36912 DYNX#(II)=DYN#(II):DYT#(II)=VAL(DYT$(II))
- 36913 DYM#(II)=VAL(DYM$(II))
- 36914 NEXT II
- 36930 RETURN
- 36940 '
- 37000 *HKCFGET'----------- 定額ファイル読み込み
- 37010 GOSUB *HKCFOPN
- 37020 FOR R=1 TO 10
- 37030 GET #3,R
- 37040 FOR JJ=1 TO 5:COX$(R,JJ)=CO$(JJ):NEXT JJ
- 37050 NEXT R
- 37060 CLOSE
- 37070 RETURN
- 37080 '
- 37100 *HKCFPUT'----------- 定額ファイル書き込み
- 37110 GOSUB *HKCFOPN
- 37120 FOR R=1 TO 10
- 37125 COX$(R,5)=SPACE$(2)
- 37130 FOR JJ=1 TO 5:LSET CO$(JJ)=COX$(R,JJ):NEXT JJ
- 37140 PUT #3,R
- 37150 NEXT R
- 37160 CLOSE
- 37170 RETURN
- 37180 '
- 37290 '
- 37400 RETURN
- 37500 *DICREAD:'---------- 辞書読み込み 'V1.2 1993.12.21
- 37505 MESN=16:GOSUB *MESDSP
- 37510 FOR II=1 TO 15
- 37520 DICNO$=RIGHT$(STR$(100+II),2)
- 37530 OPEN "I",#4,DICDRV$+"\HKWRD"+DICNO$+".DIC"
- 37540 WRDC=1
- 37550 IF EOF(4)<>0 THEN 37600
- 37555 INPUT #4,WLN$:WLN(II,WRDC)=VAL(WLN$)
- 37560 IF EOF(4)<>0 THEN 37600
- 37565 INPUT #4,WFR$:'DUMMY
- 37570 IF EOF(4)<>0 THEN 37600
- 37575 INPUT #4,WRD$:WRD$(II,WRDC)=WRD$
- 37580 WRDC=WRDC+1
- 37590 IF WRDC<=128 THEN 37550
- 37600 WRDM(II)=WRDC-1
- 37610 CLOSE #4
- 37620 NEXT II:DICEXF=1
- 37630 RETURN
- 37640 '
- 37700 *HKISSF:'----------- 総計起算ファイル検出
- 37710 IYM$=LEFT$(SSYMD$,6)
- 37720 GOSUB *HKISRC
- 37730 IF FIDX=0 THEN RSS=0 ELSE RSS=RI
- 37740 RETURN
- 37750 '
- 39000 '//////////////////////////////////////////////////
- 39010 *CONFIGファイルチェック' V1.4 1994.06.19
- 39020 ' FOR HK T.Komura
- 39030 CFLNO=0
- 39040 OPEN "R",#1,"(1)HK.CFG"
- 39050 FIELD #1,1 AS D$
- 39060 IF LOF(1)=0 THEN *CFGFE1
- 39070 CLOSE
- 39080 OPEN "I",#1,"HK.CFG"
- 39085 GOSUB *CFGREAD:ABOUT$=CFG$ :'-- about$ [0]
- 39090 GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$ [1]
- 39092 FILES ,C,ARY&:N=ARY&(1):DIM ARY$(N)
- 39094 FILES ,N,ARY$:PRGDRV$=ARY$(0):ERASE ARY$
- 39100 GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$ [2]
- 39110 GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$ [3]
- 39120 TIFDRV$=PRGDRV$+"\TIFF" :'-- TIFDRV$ [4]
- 39130 GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$ [5]
- 39140 GOSUB *CFGREAD :'-- SNDMF [6]
- 39150 IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
- 39160 SNDMF=VAL(RIGHT$(CFG$,1))
- 39170 GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$ [7]
- 39180 GOSUB *CFGREAD :'-- SWAIT [8]
- 39190 IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
- 39200 SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
- 39210 FOR II=1 TO 15 :' [9]-[10]
- 39220 GOSUB *CFGREAD:CFI$(II)=CFG$
- 39230 NEXT II
- 39240 GOSUB *CFGREAD :'-- DICIF [11]
- 39250 IF LEFT$(CFG$,5)<>"DICIF" THEN *CFGFE2
- 39260 DICIF=VAL(RIGHT$(CFG$,1))
- 39270 GOSUB *CFGREAD :'-- DICSF [11]
- 39280 IF LEFT$(CFG$,5)<>"DICSF" THEN *CFGFE2
- 39290 DICSF=VAL(RIGHT$(CFG$,1))
- 39300 GOSUB *CFGREAD:DICDRV$=CFG$:'-- DICDRV$ [12]
- 39310 GOSUB *CFGREAD :'-- taxr$ [13]
- 39320 IF LEFT$(CFG$,4)<>"TAXR" THEN *CFGFE2
- 39330 TAXR$=RIGHT$(CFG$,LEN(CFG$)-5)
- 39340 GOSUB *CFGREAD :'-- CALCF [14]
- 39350 IF LEFT$(CFG$,5)<>"CALCF" THEN *CFGFE2
- 39360 CALCF=VAL(RIGHT$(CFG$,1))
- 39370 GOSUB *CFGREAD :'--SDAY [15]
- 39380 IF LEFT$(CFG$,4)<>"SDAY" THEN *CFGFE2
- 39390 SDAY=VAL(RIGHT$(CFG$,2))
- 39400 SDAY$=RIGHT$(STR$(100+SDAY),2)
- 39410 IF SDAY>0 THEN MOFF=0 ELSE MOFF=-1
- 39420 GOSUB *CFGREAD :'-- SSYMD$ [16]
- 39430 IF LEFT$(CFG$,5)<>"SSYMD" THEN *CFGFE2
- 39440 SSYMD$=RIGHT$(CFG$,8)
- 39450 CLOSE
- 39460 RETURN
- 39470 *CFGREAD:'////////////////////////////////////
- 39480 IF EOF(1)<>0 THEN *CFGFE3
- 39490 LINE INPUT #1,CFG$:CFLNO=CFLNO+1
- 39500 IF LEFT$(CFG$,1)="/" THEN 39480
- 39510 RETURN
- 39520 '------------------------------------------------------------------
- 39530 *CFGFE1
- 39540 CFE$="HK.CFG ファイルが見当たりません。 家計簿を終了します。"
- 39550 GOTO *CFGFEP
- 39560 *CFGFE2
- 39570 CFE$="HK.CFGファイル 行番号"+STR$(CFLNO)+"の内容に誤りがあります。 家計簿を終了します。"
- 39580 GOTO *CFGFEP
- 39590 *CFGFE3
- 39600 CFE$="HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
- 39610 GOTO *CFGFEP
- 39620 '-------------------------------------------------------------------
- 39630 *CFGFEP
- 39640 LOCATE 2,23:COLOR 6:PRINT CFE$;
- 39650 CLOSE :WAIT SWAIT\1+1
- 39660 STOP
- 39670 '///////////////////////////////////////////////////////////////////
- 40000 *ボタン座標:'-------------------------------------------------------
- 40010 DATA 8 'SWGN スイッチグループ数
- 40020 '/////////////////////////////
- 40030 '-------------------- スイッチグループ[1] メインウインドウ
- 40050 DATA 40 :'ボタン個数
- 40060 ' X1 ,X2 ,Y1 ,Y2
- 40070 DATA 000,639,000,479 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 40080 DATA 000,000,000,000 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 40085 '--------------------
- 40090 ' XB1 XB2 YB1 YB2
- 40100 DATA 124,137, 39, 49 ' ヌyr 01
- 40110 DATA 124,137, 28, 38 ' ネyr 02
- 40120 DATA 176,189, 39, 49 ' ヌmn 03
- 40130 DATA 176,189, 28, 38 ' ネmn 04
- 40140 DATA 256,269, 39, 49 ' ヌdy 05
- 40150 DATA 256,269, 28, 38 ' ネdy 06
- 40160 DATA 270,299, 39, 49 ' ヌwk 07
- 40170 DATA 270,299, 28, 38 ' ネwk 08
- 40180 DATA 544,591, 28, 54 '読 込 09
- 40190 DATA 592,639, 28, 54 '保 存 10
- 40200 DATA 616,634,308,322 '電 卓 11
- 40210 DATA 616,634,323,337 '辞 書 12
- 40220 DATA 616,634,338,352 '集 計 13
- 40225 DATA 616,634,353,367 '定 額 14
- 40230 '
- 40231 DATA 0,123, 0, 22 ' HK2 15
- 40232 DATA 124,168, 5, 22 '記 入 16
- 40233 DATA 169,212, 5, 22 '検 索 17
- 40234 DATA 213,256, 5, 22 '分 析 18
- 40235 DATA 257,300, 5, 22 'カレンダー 19
- 40236 DATA 301,344, 5, 22 '設 定 20
- 40237 DATA 444,567, 0, 22 '日 付 21
- 40238 DATA 568,591, 0, 22 '時 計 22
- 40240 DATA 592,615, 0, 22 'HELP 23
- 40250 DATA 614,639, 0, 22 'END 24
- 40260 '
- 40270 DATA 62,123, 84,118 '出来事 25
- 40280 DATA 62,123,142,157 '給 与 26
- 40290 DATA 62,123,158,173 '臨 時 27
- 40300 DATA 62,123,174,189 '他収入 28
- 40310 DATA 62,123,214,229 '食 費 29
- 40320 DATA 62,123,230,245 '生活費 30
- 40330 DATA 62,123,246,261 '洗濯代 31
- 40340 DATA 62,123,262,277 '光熱費 32
- 40350 DATA 62,123,278,293 '被服費 33
- 40360 DATA 62,123,294,309 '交際費 34
- 40370 DATA 62,123,310,325 '娯楽費 35
- 40380 DATA 62,123,326,341 '酒 代 36
- 40390 DATA 62,123,342,357 '車維持 37
- 40400 DATA 62,123,358,373 '教育費 38
- 40410 DATA 62,123,374,389 '雑 費 39
- 40420 DATA 62,123,390,405 '他支出 40
- 40430 '-------------------- スイッチグループ[2] 確認
- 40432 DATA 3 :'ボタン個数
- 40434 ' X1 ,X2 ,Y1 ,Y2
- 40436 DATA 106,522,258,287 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 40438 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 40450 '--------------------
- 40460 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 40470 DATA 338,369, 6, 23 ' OK 01
- 40480 DATA 370,401, 6, 23 ' NG 02
- 40485 DATA 8, 27, 5, 24 'drag
- 40490 '-------------------- スイッチグループ(3) 項目辞書
- 40492 DATA 22 :'ボタン個数
- 40494 ' X1 ,X2 ,Y1 ,Y2
- 40496 DATA 56,197,125,409 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 40498 DATA 000,199,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 40520 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 40530 DATA 6, 35, 25, 43 ' 取消
- 40540 DATA 36, 65, 25, 43 ' 消去
- 40550 DATA 66,101, 25, 43 ' 入力
- 40560 DATA 102,118, 25, 43 ' ヌ
- 40570 DATA 119,135, 25, 43 ' ネ
- 40580 DATA 103,135, 55, 68 ' 1
- 40590 DATA 103,135, 69, 82 ' 2
- 40600 DATA 103,135, 83, 96 ' 3
- 40610 DATA 103,135, 97,110 ' 4
- 40620 DATA 103,135,111,124 ' 5
- 40630 DATA 103,135,125,138 ' 6
- 40640 DATA 103,135,139,152 ' 7
- 40650 DATA 103,135,153,166 ' 8
- 40660 DATA 103,135,167,180 ' 9
- 40670 DATA 103,135,181,194 ' 10
- 40680 DATA 103,135,195,208 ' 11
- 40690 DATA 103,135,209,222 ' 12
- 40700 DATA 103,135,223,236 ' 13
- 40710 DATA 103,135,237,250 ' 14
- 40720 DATA 103,135,251,264 ' 15
- 40730 DATA 103,135,265,278 ' 16
- 40735 DATA 5, 18, 4, 17 'drag
- 40740 '-------------------- スイッチグループ(4) 電卓スイッチグループ
- 40742 DATA 23 :'ボタン個数
- 40744 ' X1 ,X2 ,Y1 ,Y2
- 40746 DATA 318,459,104,388 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 40748 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 40770 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 40780 DATA 6, 70,219,248 '0
- 40790 DATA 6, 38,189,218 '1
- 40800 DATA 39, 70,189,218 '2
- 40810 DATA 71,102,189,218 '3
- 40820 DATA 6, 38,159,188 '4
- 40830 DATA 39, 70,159,188 '5
- 40840 DATA 71,102,159,188 '6
- 40850 DATA 6, 38,129,158 '7
- 40860 DATA 39, 70,129,158 '8
- 40870 DATA 71,102,129,158 '9
- 40880 DATA 71,102,219,248 '000
- 40890 DATA 103,134,189,248 'cr1
- 40900 DATA 103,134,159,188 '.
- 40910 DATA 103,134,129,158 '=
- 40920 DATA 6, 38, 99,128 '*
- 40930 DATA 39, 70, 99,128 '/
- 40940 DATA 71,102, 99,128 '+
- 40950 DATA 103,134, 99,128 '-
- 40960 DATA 6, 38, 69, 88 'off
- 40970 DATA 71,102, 69, 88 'c
- 40980 DATA 103,134, 69, 88 'ac
- 40990 DATA 39, 70, 69, 88 'tax
- 40995 DATA 6, 15, 3, 12 'drag
- 41000 '-------------------- スイッチグループ(5) 定額編集スイッチグループ
- 41012 DATA 43 :'ボタン個数
- 41014 ' X1 ,X2 ,Y1 ,Y2
- 41016 DATA 143,504,162,365 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 41018 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 41030 ' XB1 XB2 YB1 YB2 SWM$ SMC SWNO.
- 41040 DATA 6, 25, 38, 53 'sel1 0
- 41050 DATA 6, 25, 54, 69 'sel2 1
- 41060 DATA 6, 25, 70, 85 'sel3 2
- 41070 DATA 6, 25, 86,101 'sel4 3
- 41080 DATA 6, 25,102,117 'sel5 4
- 41090 DATA 6, 25,118,133 'sel6 5
- 41100 DATA 6, 25,134,149 'sel7 6
- 41110 DATA 6, 25,150,165 'sel8 7
- 41120 DATA 6, 25,166,181 'sel9 8
- 41130 DATA 6, 25,182,197 'sel0 9
- 41140 '
- 41150 DATA 274,293, 38, 53 'sel1 0
- 41160 DATA 274,293, 54, 69 'sel2 1
- 41170 DATA 274,293, 70, 85 'sel3 2
- 41180 DATA 274,293, 86,101 'sel4 3
- 41190 DATA 274,293,102,117 'sel5 4
- 41200 DATA 274,293,118,133 'sel6 5
- 41210 DATA 274,293,134,149 'sel7 6
- 41220 DATA 274,293,150,165 'sel8 7
- 41230 DATA 274,293,166,181 'sel9 8
- 41240 DATA 274,293,182,197 'sel0 9
- 41250 '
- 41260 DATA 294,313, 38, 53 'sel1 0
- 41270 DATA 294,313, 54, 69 'sel2 1
- 41280 DATA 294,313, 70, 85 'sel3 2
- 41290 DATA 294,313, 86,101 'sel4 3
- 41300 DATA 294,313,102,117 'sel5 4
- 41310 DATA 294,313,118,133 'sel6 5
- 41320 DATA 294,313,134,149 'sel7 6
- 41330 DATA 294,313,150,165 'sel8 7
- 41340 DATA 294,313,166,181 'sel9 8
- 41350 DATA 294,313,182,197 'sel0 9
- 41360 '
- 41370 DATA 319,355, 38, 53 'sel1 0
- 41380 DATA 319,355, 54, 69 'sel2 1
- 41390 DATA 319,355, 70, 85 'sel3 2
- 41400 DATA 319,355, 86,101 'sel4 3
- 41410 DATA 319,355,102,117 'sel5 4
- 41420 DATA 319,355,118,133 'sel6 5
- 41430 DATA 319,355,134,149 'sel7 6
- 41440 DATA 319,355,150,165 'sel8 7
- 41450 DATA 319,355,166,181 'sel9 8
- 41460 DATA 319,355,182,197 'sel0 9
- 41470 '
- 41480 DATA 319,355, 6, 32 '入力 1
- 41490 DATA 274,313, 6, 21 '終了 2
- 41495 DATA 8, 21, 7, 20 'drag
- 41500 '-------------------- スイッチグループ(6) 集計表スイッチグループ
- 41502 DATA 2 :'ボタン個数
- 41504 ' X1 ,X2 ,Y1 ,Y2
- 41506 DATA 140,506, 59,380 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 41508 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 41520 '
- 41530 ' XB1 XB2 YB1 YB2 SWM$ SMC SWNO.
- 41540 DATA 323,361, 5, 20 '取消
- 41550 DATA 6, 19, 6, 19 'drag
- 41560 '
- 41600 '-------------------- スイッチグループ(7) Helpグループ
- 41602 DATA 6 :'ボタン個数
- 41604 ' X1 ,X2 ,Y1 ,Y2
- 41606 DATA 60,577,100,421 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 41608 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 41620 '
- 41630 ' XB1 XB2 YB1 YB2 SWM$ SMC SWNO.
- 41640 DATA 499,512, 25, 38 '前頁
- 41650 DATA 499,512, 39, 52 '前行
- 41660 DATA 499,512,289,302 '次行
- 41670 DATA 499,512,303,316 '次頁
- 41680 DATA 499,512, 6, 19 '終了
- 41690 DATA 6, 17, 7, 18 'drag
- 42540 '-------------------- スイッチグループ[8] デジタル時計
- 42550 DATA 2 :'ボタン個数
- 42560 ' X1 ,X2 ,Y1 ,Y2
- 42570 DATA 46,607,100,306 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42580 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42590 '--------------------
- 42600 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 42610 DATA 543,561, 0, 18 ' end 01
- 42620 DATA 3, 16, 3, 16 ' drag 02
- 42630 '
- 49900 '
- 50290 *DCLOCKDATA
- 50300 ' 1,2,3,4,5,6,7
- 50310 DATA 1,1,1,1,1,1,0 '0 (1)
- 50320 DATA 0,1,1,0,0,0,0 '1 ---
- 50330 DATA 1,1,0,1,1,0,1 '2 | |(2)
- 50340 DATA 1,1,1,1,0,0,1 '3 (6)|(7)| ●(8)
- 50350 DATA 0,1,1,0,0,1,1 '4 ---
- 50360 DATA 1,0,1,1,0,1,1 '5 | |(3) ●(9)
- 50370 DATA 1,0,1,1,1,1,1 '6 (5)| |
- 50380 DATA 1,1,1,0,0,0,0 '7 ---
- 50390 DATA 1,1,1,1,1,1,1 '8 (4)
- 50400 DATA 1,1,1,1,0,1,1 '9
- 50410 ' dgx,dgy
- 50420 DATA 80, 40 '(1)
- 50430 DATA 120, 70 '(2)
- 50440 DATA 110,140 '(3)
- 50450 DATA 80,180 '(4)
- 50460 DATA 40,140 '(5)
- 50470 DATA 50, 70 '(6)
- 50480 DATA 80,100 '(7)
- 50490 DATA 280, 80 '(8)
- 50500 DATA 280,140 '(9)
- 50510 ' ofset
- 50520 DATA 0 '1桁
- 50530 DATA 120 '2桁
- 50540 DATA 280 '3桁
- 50550 DATA 400 '4桁
- 50560 '
- 60000 ' 座標確認 DEBUG ROUTINE
- 60010 'LOAD@ "e:\work\hk2\tiff\hk2help.tif",(0,0)'
- 60020 MOUSE 0:MOUSE 1,0,0,1
- 60030 IF MOUSE(2,1)<>0 THEN STOP
- 60040 IF MOUSE(2,0)=0 THEN 60040
- 60050 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
- 60060 LINE(0,460)-(639,479),PSET,0,BF
- 60070 SYMBOL(0,460),"X="+STR$(X_M)+" Y="+STR$(Y_M),.75!,.75!,6
- 60080 GOTO 60030
- 60090 '
-